在ios中使用+(id)function_name有什么用?

时间:2013-05-27 07:22:44

标签: iphone ios6

我想在我的项目中使用singleton。所以为此我已经阅读了这个并找到这样的东西:

@interface MyManager : NSObject
{
    NSString *someProperty;
}

@property (nonatomic, retain) NSString *someProperty;

+ (id)sharedManager;

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

4 个答案:

答案 0 :(得分:3)

  1. 使用+(id)可确保我们不必alloc init再次Singleton Class获取,因为+表示它是静态方法。< / p>

  2. +(id)表示方法return type的{​​{1}}可以是任何对象。

  3. 方法+ (id)sharedManager;中的
  4. 我们必须检查对象是否已经初始化,如果已经创建了+ (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]时看到一个示例,这将返回单例应用程序实例。

相关问题