我想在我的项目中使用单例。因此,为此我已经阅读了相关内容并找到了类似的内容:
@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],这将返回单例应用程序实例。