我可以在ARC中使用保留吗?
我正在阅读这份官方指南:https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/MemoryMgmt/Articles/mmPractical.html#//apple_ref/doc/uid/TP40004447-SW13,我不确定它是指旧的处理引用计数的方式还是仅用于演示它的工作原理 - 但是应该如何使用保留/手动释放?我可以在ARC中使用保留吗?
您不得与ARC一起使用retain
。但是,在没有ARC的情况下(以及您链接的文档中所述),它在后台仍然是相同的,但编译器会根据需要添加retain
和release
调用。你不必处理。
这二传手:
- (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;
}
您不要使用与ARC保留,但 它可以禁用ARC由单个文件为这些文件添加-fno-objc-arc编译器标志。
您在目标 - >构建阶段 - >编译源中添加编译器标志。您必须双击Compiler Flags下的右列。您也可以在按住CMD按钮选择文件,然后按下回车弹出标志的文本框中添加多个文件。
是的,我知道我可以禁用ARC的某些文件。我只是好奇 - 尽管在官方指南中提及ARC的说明 - 它仅在教育或实际使用目的的Apple文档中提供 – raistlin
如果您是ARC的新手,那么您应该查看[“过渡到ARC发行说明”](https://developer.apple.com/library/mac/releasenotes/ObjectiveC/RN-TransitioningToARC/简介/ Introduction.html)。 –
是的,我知道,只是不确定在官方文档(教育或现实生活)中说明这一点的目的,但感谢您的链接,将看看:) – raistlin