类方法和实例方法有什么区别?
问题内容:
类方法和实例方法有什么区别?
实例方法是访问器(getter和setter)而类方法是其他所有东西吗?
问题答案:
就像大多数其他答案所说的那样,实例方法使用类的实例,而类方法只能与类名一起使用。因此在Objective-C中对它们进行了定义:
@interface MyClass : NSObject
+ (void)aClassMethod;
- (void)anInstanceMethod;
@end
然后可以像这样使用它们:
[MyClass aClassMethod];
MyClass *object = [[MyClass alloc] init];
[object anInstanceMethod];
一些真实世界的类方法的例子是很多基础类,如方便的方法NSString
的+stringWithFormat:
或NSArray
的+arrayWithArray:
。实例方法将是NSArray
的-count
方法。