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)
这是iOS 5之前的最佳实践,如果禁用ARC模式,则是iOS 5中的最佳实践.现在iOS 5使用新的Apple的LLVM编译器,它引入了这个ARC功能.
因此,如果启用了ARC(默认情况下是这样),则通常不再需要使用该release
方法.您可以在文档中找到更多详细信息.
如果您仍想开发旧方法,可以-fno-objc-arc
在Xcode项目的"构建阶段"部分添加标记
归档时间: |
|
查看次数: |
2356 次 |
最近记录: |