我使用Objective-C singleton from here at stackoverflow。
类方法中的单例访问它的实例变量,该变量有效,但会抛出一个complie警告。我该怎么做?有没有办法在不访问每个类方法中的sharedInstance:
的情况下执行此操作?
例如,这是我的类方法:
+ (NSString *)myClassMethods {
[instanceDateFormatter setFormat:@"MM"];
return [instanceDateFormatter stringWithDate:somedate];
}
第2行将有complie警告。
谢谢, 罗斯
答案 0 :(得分:3)
您应该在每个类方法中使用sharedInstance:
调用。我想如果你真的想要,你可以使用全局变量解决它,但正确的解决方案就像你提到的那样。
答案 1 :(得分:2)
由于instanceDataFormatter
是一个实例变量,您必须通过类实例访问它 - 因此您需要通过sharedInstance
方法来获取它。或者,您可以通过静态单例变量访问它,绕过对sharedInstance
的调用(但是,如果静态变量尚未初始化,则可能会中断)。