是否可以释放类对象?
我有一个单例类“singleton.h”,它只有一个实例,我们可以在任何其他 View Controller 中使用它的属性。
+(singleton *)sharedMethod{
static singleton *myInstance=nil;
if(myInstance ==nil){
myInstance=[[singleton alloc] init]; myInstace.str=@"hello";
}
return myInstance;
}
我想知道的是..,有没有什么方法可以在我们的任何 viewControllers 中释放类对象...然后再次创建一个新的单例类的实例..,我试过这样做..,Xcode 抛出错误“无法释放类对象”。
最佳答案
单例的全部意义在于您永远不会释放它。其他类可能会保护指向该实例的指针,因此如果您想替换它,您会遇到奇怪的行为,有时甚至会崩溃。所以你不应该这样做。
但这是可能的,只要您没有覆盖 release
和 retainCount
方法。但是您引用的错误消息似乎表明您已经按照 [MyClass release];
的方式做了一些事情,当然这是行不通的。
顺便说一句,您似乎将 singleton
作为类名。请尽量遵守 Apple 使用的编码约定,以使您和其他人的生活更轻松。类名称应始终以大写字符开头,方法名称应始终以小写字符开头。
关于iphone - 如何释放并重新初始化单例类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6502522/