2011-10-19 75 views
0

假设与ARC一个新项目启用创建在Xcode4.2内存管理,澄清需要

@autoreleasepool { 
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
} 

,并声明如下

@property (nonatomic) NSString *classDescription; 

为什么会

@synthesize classDescription; 

出错

"Existing ivar 'classDescription' for unsafe_unretained propery 'classDescription must be _unsafe_unretained" 

我认为在Xcode的4.2版本中,不需要保留,也不需要发布。这是不正确的?

请说明

+0

ARC是否使NSString属性上的'copy'修饰符过时? – Lukman

回答

2

您需要将其设置为strong属性,以便ARC知道它应该保留该对象。

+0

这解决了问题,但我不知道这是一些指南所引用某个地方?请链接 – JAM

0

如果您正在使用自动引用计数,则不需要保留/释放。这是一个现有的项目还是新的项目?新项目应默认启用ARC。

+0

这是一个新项目。随着ARC启用。这就是为什么我觉得这是奇怪地看到这个错误 – JAM

0

如果你的项目的Xcode 4.2之前提出的,那么你可以去构建设置,搜索的Objective-C++自动引用计数,并勾选框启用它。

+0

这是ARC一个全新的项目启用 – JAM