iOS 5 NSString版本不可用

iLe*_*LeW 2 iphone ios5 xcode4.2

我在网上看到,当我创建一个对象时alloc,init我必须释放它(甚至一个NSString),所以:

为什么我这样创建NSString:

NSString *prova = [[NSString alloc] init];
[prova release];
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

'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);
Run Code Online (Sandbox Code Playgroud)

eli*_*lon 5

这是iOS 5之前的最佳实践,如果禁用ARC模式,则是iOS 5中的最佳实践.现在iOS 5使用新的Apple的LLVM编译器,它引入了这个ARC功能.

因此,如果启用了ARC(默认情况下是这样),则通常不再需要使用该release方法.您可以在文档中找到更多详细信息.

如果您仍想开发旧方法,可以-fno-objc-arc在Xcode项目的"构建阶段"部分添加标记