我可以使用ARC保留吗?

时间:2014-03-29 13:11:59

标签: ios objective-c cocoa memory-management automatic-ref-counting

我正在阅读这本官方指南:https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/MemoryMgmt/Articles/mmPractical.html#//apple_ref/doc/uid/TP40004447-SW13而且我不确定它是指旧的处理引用计数的方式,还是只是为了证明它是如何工作的 - 但是应该是像使用访问器一样手动使用保留/释放?

2 个答案:

答案 0 :(得分:3)

您不能在ARC中使用retain。但是它在后台仍然与没有ARC(和您链接的文档中描述的)相同,但编译器会根据需要添加retainrelease调用。你不必处理这个问题。

这个二传手:

- (void)setCount:(NSNumber *)newCount {
    [newCount retain];
    [_count release];
    // Make the new assignment.
    _count = newCount;
}
使用ARC时,

应如下所示:

- (void)setCount:(NSNumber *)newCount {
    // Make the new assignment.
    _count = newCount;
}

答案 1 :(得分:1)

您不使用ARC保留 通过为这些文件添加-fno-objc-arc编译器标志,可以为单个文件禁用ARC。

您在目标中添加编译器标志 - >构建阶段 - >编译源代码。您必须双击Compiler Flags下行的右列。您还可以通过按住cmd按钮选择文件,然后按Enter键以显示标志编辑框,将其添加到多个文件中。enter image description here