`
zhy584520
  • 浏览: 183543 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

iOS开发中混合使用ARC和非ARC项目

    博客分类:
  • IOS
 
阅读更多

在开发 iOS 3 以及之前的版本的项目时我们要自己负责使用引用计数来管理内存,比如要手动 retain、release、autorelease 等,而在其后的版本可以使用 ARC,让系统自己管理内存。

【问题】

在项目开发过程中我们通常会用到第三方提供的源代码,麻烦的是有些开源项目用的是 ARC,有的用的是非 ARC。

我在使用 SVProgressHUD 做等待视图时遇到问题,最终发现该项目使用的是 ARC 模式,而我的工程使用的是非 ARC 模式。

怎么办呢?

 

【解决方案】

Xcode 项目中我们可以使用 ARC 和非 ARC 的混合模式。

如果你的项目使用的非 ARC 模式,则为 ARC 模式的代码文件加入 -fobjc-arc 标签。

如果你的项目使用的是 ARC 模式,则为非 ARC 模式的代码文件加入 -fno-objc-arc 标签。

添加标签的方法:

  1. 打开:你的target -> Build Phases -> Compile Sources.
  2. 双击对应的 *.m 文件
  3. 在弹出窗口中输入上面提到的标签 -fobjc-arc / -fno-objc-arc
  4. 点击 done 保存
分享到:
评论

相关推荐

    ios 5 ARC 完全指南

    在ARC的使用过程中,开发者还需要了解Toll-Free Bridging的概念,这是指iOS平台中Objective-C和C++之间可以无成本转换的桥接,这对于混合使用Objective-C和C++代码的项目来说非常重要。Delegate和WeakProperty(弱...

    IOS开发的技术和要点

    iOS开发涉及的主要技术是Objective-C,这是一种面向对象的语言,它在语法上与Java和C++有很大的差异。Objective-C是Apple的 Cocoa 和 Cocoa Touch 框架的基础,用于构建iOS和macOS的应用程序。 1. **Objective-C的...

    iOS项目源代码(18个)

    项目中可能混合使用两种方式,让你理解它们各自的优缺点。 14. **国际化与本地化**: - 如何让应用支持多种语言?查看源代码中的Localizable.strings文件和InfoPlist.strings,学习如何设置和实现。 15. **Swift...

    iOS实例开发源码——leonardoeloy-VolcanoPong-dbb7121.zip

    6. **ARC(Automatic Reference Counting)**:iOS开发中内存管理通常采用ARC,它自动跟踪并释放不再使用的对象,避免了内存泄漏。 7. **GCD(Grand Central Dispatch)**:多线程处理可能通过GCD来实现,它简化了...

    ios开发入门教程.docx

    - **Objective-C**:Objective-C是iOS开发的主要语言,它是C语言的超集,允许混合使用C和Objective-C代码。Objective-C的面向对象特性使得代码组织和维护变得更加方便。 3. **基本任务**: - **对象操作**:了解...

    unlocker+IOS教程2本

    这本书可能涵盖了iOS应用开发的全貌,包括Xcode集成开发环境的使用、Swift和Objective-C的混合编程、Interface Builder的界面设计、Storyboard的概念、MVVM(Model-View-ViewModel)架构、网络请求(如AFNetworking...

    IOS学习参考书籍

    尽管如此,我们依然可以根据提供的标签和部分内容来确定一些知识点,这些知识点主要涉及Objective-C语言的使用,Objective-C是一种广泛用于iOS开发的编程语言。具体内容包括Objective-C语言的多方面知识,如内存管理...

    IOS 开发总结

    7. **UITableView**:在iOS开发中,`UITableView`是最常用的列表视图组件,了解其各种代理和数据源方法对于制作流畅的列表界面至关重要。 8. **_cmd**:在Objective-C的方法中,`_cmd`是一个指向当前方法选择器的...

    ios代码和技巧总结

    在iOS开发领域,掌握一些...以上这些是iOS开发中常见的技术点和技巧,每个主题都值得深入研究。通过不断学习和实践,开发者可以逐步提升自己的技能,创造出更优秀的iOS应用。希望这个总结能为你的iOS学习之路提供帮助。

    ios-新浪微博首页.zip

    "ios-新浪微博首页.zip"这个项目显然尝试实现这样的功能,但描述中提到的“数据查询还有点小问题”暗示开发者可能在数据获取和展示上遇到了困扰。在这个过程中,我们需要考虑以下几个关键知识点: 1. **界面设计与...

    iOS游戏应用源代码——thillerson-pebbles-6f0e855.zip

    8. **内存管理和性能优化**:iOS设备的资源有限,因此源代码中可能会有针对内存管理(如ARC自动引用计数)和性能优化(如避免阻塞主线程、利用GCD进行异步处理)的考虑。 9. **版本控制(Git)**:项目名中的"6f0e...

    iOS游戏应用源代码——pankaku-pankia-170f07e.zip

    《iOS游戏应用源代码解析——基于pankaku-pankia-170f07e项目》 在iOS开发领域,源代码是理解应用...通过对pankaku-pankia-170f07e的深入研究,开发者可以学习到实际项目中的最佳实践,并提升自己的iOS游戏开发能力。

    ios源码之南瓜脸应用PumpkinFace.rar

    8. **内存管理和性能优化**:在源码中,我们可以看到内存管理的最佳实践,如正确使用ARC(Automatic Reference Counting),以及性能优化策略,如减少不必要的计算和及时释放不再使用的资源。 9. **数据持久化**:...

    iOS-面试宝典3.0.pdf

    ### 二十一、需要在手动管理内存分配和释放的Xcode项目中引入和编译用ARC风格编写的文件,需要在文件的CompilerFlags上添加参数 在Xcode中,可以在文件的编译选项中添加`-fobjc-arc`参数,以启用ARC特性。 ### 3. ...

    IOS面试题--(某大型移动互联网公司)

    NSZone在ARC中不再常用。 9. `#import`和`#include`的区别:`#import`防止重复引用且通常用于Objective-C,`#include`则用于C/C++,两者效果相似但`#import`更安全。 10. `@implementation`代码问题:该代码没有...

    IOS应用源码——面试题讲解.zip

    理解这两种语言的语法、特性、优缺点以及如何在项目中混合使用是必备知识。 2. ** MVC, MVVM, VIPER等架构模式**: 面试中经常会问到如何组织代码结构,比如Model-View-Controller (MVC)、Model-View-ViewModel ...

    Swift和Objective-C混合编程示例代码

    在iOS应用开发中,Swift和Objective-C的混合编程是一个常见的需求。Swift是Apple于2014年推出的现代化编程语言,而Objective-C则是苹果长期使用的系统级编程语言,两者各有优势。本示例代码旨在帮助开发者理解如何在...

    高清彩版 Pro iOS Apps Performance Optimization

    虽然Swift是目前iOS开发的主要语言,但在某些特定场景下,使用C/C++编写代码可以带来更高的性能收益。本章节介绍了如何在Swift项目中嵌入C/C++代码以达到更好的优化效果。 - **混合语言编程**:通过Swift与C/C++的...

    iOS软件代码规范

    5】遵循一致的编码风格,保持团队协作的高效性。说明:团队合作中,统一的编码风格能够...以上是iOS软件代码规范的主要内容,遵循这些原则和规范,能够提升代码质量,促进团队协作,并为项目的长期维护打下坚实基础。

Global site tag (gtag.js) - Google Analytics