使用更多类中的相同实例

时间:2011-10-24 20:49:16

标签: cocoa class instance

我有一点问题,当我必须访问一个类时,我创建了一个新实例

Class *class = [[Class alloc] init];

问题是我不想创建新实例但是使用当前实例,我只想在两个类之间进行通信...如何在不创建新实例的情况下传递值?

1 个答案:

答案 0 :(得分:1)

你可以使用Singleton类来创建一个可以在应用程序的生命周期内访问的共享对象,这里有一个简单的(虽然不是100%万无一失)创建一个:

+ (id) sharedInstance {
    static Foo *__sharedInstance;
    if (nil == __sharedInstance) {
        __sharedInstance = [[Foo alloc] init];
    }
    return __sharedInstance;
}

更多here

如果您只想执行特定操作或从类中获取信息,可以在方法名称中使用“+”而不是“ - ”来使用类方法,如下所示:

+ (void) doSomething {
    NSLog(@"This class is %@", self);
}

然后您只需调用[Class doSomething]即可执行操作,而无需创建新实例。