我认为我对BNR书中的方法和课程有足够的把握,现在我已经达到了关于它的章节的结尾(在发送不良信息'下)
如果您将日期类方法发送到 NSDate 会发生什么情况 实例或 timeIntervalSince1970 实例方法 NSDate 类?
我现在该死的,我觉得NSDate是一个班级?为什么它在这里被称为实例呢? Aren的实例只是在类/对象中找到的变量?什么是实例方法呢?
答案 0 :(得分:0)
实例方法是可以在类的实例上调用的方法,并使用“ - ”字符定义:
- (void)instanceMethod;
类方法是一种不需要类实例的方法,可以在类本身上调用(用'+'定义):
+ (void)classMethod;
问题是如果在类上调用实例方法会发生什么,反之亦然(类的实例上的类方法):
[NSDate timeIntervalSince1970]; // Instance method (timeIntervalSince1970) called on the class itself (NSDate)
NSDate *dateInstance = [NSDate date]; // NSDate instance defined as dateInstance;
[dateInstance date]; // class method (date) called on an instance of NSDate
编辑:
关于评论中的汽车示例。如果Car是一个类,并且您想要创建一个名为volvo的类的实例:
Car *volvo = [[Car alloc] init];
关于类变量,如果在实现文件中有一个变量的静态声明,那么它将与所有实例共享(即在一个实例中更改它,它将反映在所有其他实例中)。
如果它被声明为成员实例(即非静态并在您的类中声明),那么每个类实例它将是唯一的。