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