1:self是類的隱藏的參數,指向當前調用方法的類,另一個隱藏參數是_cmd,代表當前類方法的selector。
創(chuàng)新互聯擁有網站維護技術和項目管理團隊,建立的售前、實施和售后服務體系,為客戶提供定制化的成都網站設計、網站建設、外貿網站建設、網站維護、聯通服務器托管解決方案。為客戶網站安全和日常運維提供整體管家式外包優(yōu)質服務。我們的網站維護服務覆蓋集團企業(yè)、上市公司、外企網站、購物商城網站建設、政府網站等各類型客戶群體,為全球成百上千企業(yè)提供全方位網站維護、服務器維護解決方案。
2:super并不是隱藏的參數,它只是一個"編譯器指示符",它和self指向的是相同的消息接受者
3:當使用self調用方法時,會從當前類的方法列表中開始尋找,如果沒有,就從父類中再找,而使用super時,則從父類的方法列表中開始找,然后調用父類的這個方法
具體看代碼實現方法(詳細看代碼中的注釋)
一:看PersonSelf.h聲明文件
//// PersonSelf.h// PersonSelf//// Created by hmjiangqq on 14-1-22.// Copyright (c) 2014年 hmjiangqq. All rights reserved.//#import二:PersonSelf.m實現文件@classStudent;//@class一般用在頭文件中@interfacePersonSelf:NSObject{ //聲明兩個實例變量int age;NSString* name;Student*s;}//定義方法-(NSString*) getName;-(void)setName:(NSString*)_name;-(int) getAge;-(void)setAge:(int)_age;@end
//// PersonSelf.m// PersonSelf//// Created by hmjiangqq on 14-1-22.// Copyright (c) 2014年 hmjiangqq. All rights reserved.//#import "PersonSelf.h"#import "Student.h" //#import一般使用在實現文件中@implementationPersonSelf-(id)init{if(self=[super init]){//super可以調用父類中的方法 s=[[Student alloc]init];NSLog(@"student:%@\n",s);}return self;}-(NSString*) getName{return name;}-(void)setName:(NSString*)_name{ name=_name;[selfsetAge:14];//self可以去調用本類對象中的方法NSLog(@"setAge");NSLog(@"self class is: %@\n",[selfclass]);NSLog(@"super class is: %@\n",[super superclass]);}-(int) getAge{return age;}-(void)setAge:(int)_age{ age=_age;}@end