2015/1/4 夜
一个犯的错误:方法是发送给对象的,而不是发送给类的。
对象和接收到消息后,在当前类中找,找不到去上一级父类找,再上一级……
创建新的类时,对象会从它的超类NSObject中继承实例变量isa
“每个方法调用都获得了一个名为self的隐藏参数,它是一个指向接收消息的对象的指针。”
“self指向继承链中第一个类中的第一个实例变量”
子类为了实现更特殊的功能而需要重写父类的方法。例如父类定义了一个draw的空方法,子类详细定义了draw,程序就会按照子类的方法重写draw,而忽略父类的draw。
如果还需要调用父类的实现方法,又要重写子类,使用[super method]。子类中重新写父类中的方法,感觉类似于改动,改动一些实例变量的值之类的,然后再再父类中的实现方法中实现。
复合:在类中将对象的指针作为实例变量。一个类复合了其他类,变形金刚~
NSLog()是给对象发送description消息,返回NSString,%@调用对象的description并显示结果。
eg:
@implementation xyz:NSObject
-(NSString *)description
{return (@“what?”);}
-(void)print
{NSLog(@“%@”,xyz);}
@end
时间: 2024-11-10 01:31:24