iphone - 如何释放并重新初始化单例类?

标签 iphone objective-c xcode

是否可以释放类对象?

我有一个单例类“singleton.h”,它只有一个实例,我们可以在任何其他 View Controller 中使用它的属性。

+(singleton *)sharedMethod{
static singleton *myInstance=nil;
if(myInstance ==nil){
myInstance=[[singleton alloc] init]; myInstace.str=@"hello";
}
return myInstance;
}

我想知道的是..,有没有什么方法可以在我们的任何 viewControllers 中释放类对象...然后再次创建一个新的单例类的实例..,我试过这样做..,Xcode 抛出错误“无法释放类对象”。

最佳答案

单例的全部意义在于您永远不会释放它。其他类可能会保护指向该实例的指针,因此如果您想替换它,您会遇到奇怪的行为,有时甚至会崩溃。所以你不应该这样做。

但这是可能的,只要您没有覆盖 releaseretainCount 方法。但是您引用的错误消息似乎表明您已经按照 [MyClass release]; 的方式做了一些事情,当然这是行不通的。

顺便说一句,您似乎将 singleton 作为类名。请尽量遵守 Apple 使用的编码约定,以使您和其他人的生活更轻松。类名称应始终以大写字符开头,方法名称应始终以小写字符开头。

关于iphone - 如何释放并重新初始化单例类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6502522/

相关文章:

iphone - 需要很多随机数

iphone - Xcode4,iOS : Certain parts of instance method being ignored, 没有错误,刚刚过去

iphone - 返回两个或多个 Controller 的后退按钮

iPhone - SVProgressHUD - 无法出现在 UIView 上

ios - Objc live Json解析仅显示1项错误

c# - AES - c# 加密和 objective-c 解密不起作用

objective-c - 带有 NSOutlineView 和 stringWithFormat 的 EXC_BAD_ACCESS

XCode 不允许我更改我的登录详细信息

c++ - 无法打开具有相对路径的文件? (C++ ifstream)

iphone - MPMoviePlayerController 无法读取文档路径中的文件