我使用最新的XCode测试版(4.2 Build 4C114,iOS 5.0)和我无法解决的自动释放问题。代码需要有条件地设置一个字符串,该字符串将成为警报中的消息:
NSString* msg = ([result rangeOfString:@"Ok"].location == NSNotFound) ?
@"Upload failed" : @"Uploaded ok";
NSString* msg = ([result rangeOfString:@"Ok"].location == NSNotFound) ?
@"Upload failed" : @"Uploaded ok";
Running Analyze突出显示“对象已发送 - 自动释放太多次(2)”的行。 而且,运行应用程序(在模拟器下)会导致SIGABRT双重释放。
我尝试将该行编码为if / else。
我已经尝试为这两个消息创建单独的字符串,只是使用三元组和if / else分配适当的指针指向第三个指针。
我没有做任何事让它消失!
答案 0 :(得分:1)
使用@“string contents”创建一个字符串将始终自动释放。您不需要自己专门发布它。
在大多数情况下,如果你开始使用“alloc”或“new”,你只需要释放一个对象。