【发布时间】:2011-12-09 17:21:15
【问题描述】:
我注意到某处有一段代码 NSMutableString *myString = [[NSMutableString string] autorelease];
是不是有点矫枉过正?不应该和[NSMutableString string]一样吗?
【问题讨论】:
标签: objective-c nsstring autorelease
我注意到某处有一段代码 NSMutableString *myString = [[NSMutableString string] autorelease];
是不是有点矫枉过正?不应该和[NSMutableString string]一样吗?
【问题讨论】:
标签: objective-c nsstring autorelease
NSMutableString *myString = [[NSMutableString string] autorelease];
如果他们不在其他地方调用保留,将导致崩溃。
[NSMutableString string]
和
一样[[[NSMutableString alloc] init] autorelease]
【讨论】:
我觉得不合适。你确定你看到的例子确实是这样做的吗?
[NSMutableString string] 等价于
[[[NSMutableString alloc] init] autorelease]
所以你提供的例子,你会得到
[[[[NSMutableString alloc] init] autorelease] autorelease]
这将导致过度释放和exc_bad_access 错误。
【讨论】: