objective-c - 如何在类方法中访问 Objective-C 属性

标签 objective-c singleton

不可能在类方法中访问 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/

相关文章:

objective-c - Swift 桥接头文件

ios - 我可以在 iOS 中连接摩托罗拉 rs507 作为蓝牙外设吗?

python - python中的单例,闭包在装饰器内不起作用

ios - 具有类变量的 Iphone sdk 共享实例

java - Scala - 如何使用 Java Singleton 对象

java - 无状态 session Bean 与单例 session Bean

ios - 在 UIButton 上触发一个 Action ,触摸里面拖到外面然后松开手指

ios - code sign wants sign using key - 不允许或总是允许但拒绝工作

ios - Objective-C JSON 数据

java - 关于单例设计模式