不可能在类方法中访问 Objective-C 属性,如下所示:
@interface MyClass
@property (nonatomic, retain) NSMutableArray myStudents;
@end
@implementation MyClass
+ (id)myClassMethod { return self.myStudents; } // bad
@end
这个 MyClass 恰好是一个单例对象,那么有没有办法可以使用 MyClass 中的类方法来访问该对象?就像 UIApplication 与 [UIApplication sharedApplication]
最佳答案
实际上单例对象是一种普通对象,只有一个实例,该实例通过 ObjC 中的类方法或 C++ 中的静态方法返回。这意味着您需要一个像这样的类方法:
+(MyClass*) shared {
static MyClass* shared_class = NULL;
@synchronized( shared_class ) {
if( !shared_class ) {
shared_class = [MyClass new];
}
}
return shared_class;
}
关于objective-c - 如何在类方法中访问 Objective-C 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7031161/