在类方法中访问Singleton实例变量会引发警告吗?

时间:2010-06-16 16:39:58

标签: objective-c

我使用Objective-C singleton from here at stackoverflow

类方法中的单例访问它的实例变量,该变量有效,但会抛出一个complie警告。我该怎么做?有没有办法在不访问每个类方法中的sharedInstance:的情况下执行此操作?

例如,这是我的类方法:

+ (NSString *)myClassMethods {
    [instanceDateFormatter setFormat:@"MM"];
    return [instanceDateFormatter stringWithDate:somedate];
}

第2行将有complie警告。

谢谢, 罗斯

2 个答案:

答案 0 :(得分:3)

您应该在每个类方法中使用sharedInstance:调用。我想如果你真的想要,你可以使用全局变量解决它,但正确的解决方案就像你提到的那样。

答案 1 :(得分:2)

由于instanceDataFormatter是一个实例变量,您必须通过类实例访问它 - 因此您需要通过sharedInstance方法来获取它。或者,您可以通过静态单例变量访问它,绕过对sharedInstance的调用(但是,如果静态变量尚未初始化,则可能会中断)。