我在网上读到,当我使用alloc
和init
创建对象时,必须释放它(甚至是NSString
),所以:
为什么如果我这样创建NSString
:
NSString *prova = [[NSString alloc] init];
[prova release];
我得到这些错误:
“发布”不可用:在自动参考计数模式下不可用
和
ARC禁止发送“释放”消息
在
[prova release]
消息上?尝试执行此操作时,我没有出现任何错误:NSString *prova = [[NSString alloc] init];
NSLog(@"Contenuto 0 di prova: %@", prova);
prova = @"prima prova stringa";
NSLog(@"Contenuto 1 di prova: %@", prova);
prova = @"ma cosè questo fantomatico errore";
NSLog(@"Contenuto 2 di prova: %@", prova);
最佳答案
这是iOS 5之前的最佳做法,如果禁用了ARC模式,则是iOS 5中的最佳做法。现在iOS 5 uses the new Apple's LLVM compiler, which introduces this ARC feature。
因此,如果启用了ARC(默认情况下是ARC),则通常不再需要使用release
方法。您可以在documentation中找到更多详细信息。
如果您仍然想使用旧方法,则可以在Xcode项目的“构建阶段”部分中添加标志-fno-objc-arc