我想在我的项目中使用单例。因此,为此我已经阅读了相关内容并找到了类似的内容:
@interface MyManager : NSObject
{
NSString *someProperty;
}
@property (nonatomic, retain) NSString *someProperty;
+ (id)sharedManager;
我知道我们用它来共享代码中的一些数据。现在我的问题是 +(id) 的含义是什么,我们称之为什么以及它的用途是什么
使用+(id)
确保我们不必再次获得,因为alloc init
它表示它是一个静态方法。Singleton Class
+
+(id)
表示return type
方法的+ (id)sharedManager;
可以是任何对象。
在该方法+ (id)sharedManager;
中,我们必须检查 Object 是否Singleton instance
已被创建,例如 - 是否已初始化if(!sharedInstance){
//Alloc init logic for singleton
}
。
id
表示对类未知的 Objective-C 对象的引用。对于您的示例,您还可以使用:
+ (MyManager *)sharedManager;
请注意,您不要使用带有 的*
符号id
。
+
意味着它是一个类方法:你在一个类上调用的方法,比如[NSString stringWithFormat:@"%d", 1]
.
-
是一个实例方法,一个你在一个类的对象实例上调用的方法,比如'[myString length]'
表示类方法,而+
不是更常见的以 . 开头的实例方法-
。( id
) 表示此方法返回一个 Objective-C 对象。
除了 fzwo 响应;通常当一个类方法签名以shared
它开头时,意味着这个类符合单例模式。一个单例对象只有一个自身的实例。使用 时可以看到一个示例[UIApplication sharedApplication]
,这将返回单例应用程序实例。