美文网首页
MRC/ARC随笔

MRC/ARC随笔

作者: 羞涩的老湿鸡 | 来源:发表于2019-08-05 09:39 被阅读0次

    autorelasepool

    MRC:
        mrc环境下我们需要遵守谁创建谁释放的原则,但由于某些特殊场景因此我们需要使用到自动释放池,比如或个A方法返回了a1对象,按装谁创建谁释放的原则,我们应该在A方法说将创建的a1对象进行release操作,但是这样的话返回的a1对象就无法使用了。因此我们需要使用autorelase进行延迟释放。系统会帮我们在进行一次runloop操作后进行释放操作。
    ARC:
        arc环境下,系统帮我们自动管理内存。在arc环境下我们可以把更多的精力放在程序的优化上。arc实现原理是在苹果在编译的过程中,在合适的位置自动添加释放操作。编译时采用LLVM编译器。
        编译器的执行操作大致分为三步:
        前端:词法分析、语法分析、语义分析、生成中间码
        优化器:中间代码优化
        后端:生成机器码

    oc编译:
        预处理:将import\宏定义进行预处理(简单来说就是把import的文件导入进去,把宏处理给进行替换操作)
        词法分析:将代码进行拆分进行分析
        语法分析:将代码生成语法树进行分析
         编译器编译:编译成中间代码   
        后端:生成目标代码\汇编\链接其它动态库静态库\编译成合适苹果架构的代码


        

    相关文章

      网友评论

          本文标题:MRC/ARC随笔

          本文链接:https://www.haomeiwen.com/subject/smktdctx.html