objective-c - 在 Xcode 4 中将非 ARC 文件子类化为 ARC 项目

标签 objective-c ios xcode three20 automatic-ref-counting

我在我的 ARC 项目中使用了一些非 ARC 代码,即 Three20。我已经添加了所有适当的编译器标志并且一切正常。但是,我需要对 Three20 类中的某些类进行子类化,我不确定是否应该将编译器标志添加到我的非 ARC 新文件中,或者编译器是否会弄清楚并添加适当的发布调用。

简单回顾一下: - XCode 4 中的 ARC 项目 - 包括非 ARC 代码 (Three20) - 需要对非 ARC 文件中定义的内容进行子类化 - 我需要添加发布调用吗? - 我是否需要在子类中为非 ARC 添加编译器标志?

最佳答案

迈克尔,

ARC 是一种编译时技术,它根据内存中的给定槽是否会在当前方法/函数调用之后持续存在来确定保留/释放语义。因此,您可以安全地混合使用或不使用 ARC 的子类。我一直这样做。我也分类别进行。与垃圾回收不同,ARC 非常关注每个方法/函数中的存储空间。顺便说一句,大多数 iOS 框架似乎还没有使用 ARC。因此,您创建的框架类的任何子类都有这个“问题”,而这根本不是问题。

回答您的具体问题:

Just to recap: - ARC project in XCode 4 - Includes non-ARC code (Three20) - Need to subclass something defined in non-ARC files - Do I need to add release calls? - Do I need to add compiler flag for non-ARC in subclass?

非 ARC 父类(super class)的子类可以是 ARC 也可以不是。由于您的应用程序的默认设置是 ARC,因此您无需对您的子类执行任何操作。

安德鲁

关于objective-c - 在 Xcode 4 中将非 ARC 文件子类化为 ARC 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790620/

相关文章:

iphone - 打字时键盘挡住屏幕

ios - 带有上标的NSLocalizedString

ios - 无法转换类型的值 - 自定义点注释

ios - 如何手动添加cordova插件到ios现有项目

iphone - 大型自定义 UIView - CABackingStoreUpdate 性能

ios - iOS Parse PFQueryTableViewController分页问题

objective-c - 从 NSString 创建 SHA1 哈希

iphone - 什么时候清除iPhone应用程序缓存?

xcode - cordova+xcode ios 构建中的错误

ios - 当用户使用调试工具跟踪代码时,如何使IOS Framework进行封装?