XCode 4.2和dealloc已过时

时间:2011-12-26 19:38:28

标签: objective-c

我开始使用Xcode 4.2,看起来你不能像以前一样使用dealloc和release了。 如果我写下面的实现:

@implementation Person

@synthesize firstName;
@synthesize lastName;

- (void) dealloc
{
    [firstName release];
    [lastName release];
    [super dealloc];
}

编译器困扰我说在自动引用计数模式下释放不可用。它是Objective-C 2.0的一个特性吗?我可以在哪里阅读更多信息?

3 个答案:

答案 0 :(得分:5)

这实际上是Automatic Reference Counting(ARC)的一项功能。如果关闭ARC,则可以使用手动内存管理或(仅限Mac OS X)垃圾回收。

答案 1 :(得分:3)

在ARC中,您不需要使用release或autorelease,编译器会为您完成所有操作。在Apple开发者网站上快速搜索release notes

答案 2 :(得分:0)

使用需要与ARC和非ARC兼容的库代码时怎么样? 我们是否被迫编写相同代码的两个版本,唯一的区别是删除了dealloc方法?