-3

我想在我的项目中使用单例。因此,为此我已经阅读了相关内容并找到了类似的内容:

@interface MyManager : NSObject
{
    NSString *someProperty;
}

@property (nonatomic, retain) NSString *someProperty;

+ (id)sharedManager;

我知道我们用它来共享代码中的一些数据。现在我的问题是 +(id) 的含义是什么,我们称之为什么以及它的用途是什么

4

4 回答 4

2
  1. 使用+(id)确保我们不必再次获得,因为alloc init它表示它是一个静态方法。Singleton Class+

  2. +(id)表示return type方法的+ (id)sharedManager;可以是任何对象。

  3. 在该方法+ (id)sharedManager;中,我们必须检查 Object 是否Singleton instance已被创建,例如 - 是否已初始化if(!sharedInstance){ //Alloc init logic for singleton }

于 2013-05-27T07:34:15.677 回答
2

id表示对类未知的 Objective-C 对象的引用。对于您的示例,您还可以使用:

+ (MyManager *)sharedManager;

请注意,您不要使用带有 的*符号id

+意味着它是一个类方法:你在一个类上调用的方法,比如[NSString stringWithFormat:@"%d", 1].

-是一个实例方法,一个你在一个类的对象实例上调用的方法,比如'[myString length]'

于 2013-05-27T07:29:45.413 回答
1

表示类方法,而+不是更常见的以 . 开头的实例方法-。( id) 表示此方法返回一个 Objective-C 对象。

于 2013-05-27T07:26:11.703 回答
1

除了 fzwo 响应;通常当一个类方法签名以shared它开头时,意味着这个类符合单例模式。一个单例对象只有一个自身的实例。使用 时可以看到一个示例[UIApplication sharedApplication],这将返回单例应用程序实例。

于 2013-05-27T07:34:35.050 回答