美文网首页
2019-04-16

2019-04-16

作者: 风行天下武帝 | 来源:发表于2019-04-16 21:03 被阅读0次

    1、Object-C的内存管理机制-自动引用计数

    在LLVM编译器中设置ARC为有效状态,就无需再次键入retain或者是release代码。

    使用ARC的前提

    • 使用Xcode4.2或以上版本
    • 使用LLVM编译器3.0或以上版本
    • 编译器选项中设置ARC为有效状态

    ARC的好处

    无需手动键入retain或者是release代码,让编译器来自动管理,这在降低程序崩溃、内存泄漏等风险的同时,很大程度减少了程序开发的工作量。编译器完全清楚目标对象,并能立刻释放那些已经不被使用的对象。如此这样,程序将具有可预测性、流畅性、大幅度性能提升。

    内存管理应该有的思考方式

    • 自己生成的对象,自己所持有
    • 非自己生成的对象,自己也能持有
    • 不再需要自己持有的对象时释放
    • 非自己持有的对象无法释放
      Object-C中是 有Cocoa框架中Foundation框架类库的NSObject类担任内存管理职责。

    alloc------>allocWithZone:(NSZone *)z----->NSAllocateObject(self,o,z)---->NSZoneMalloc(zone,size)
    NSZone 是防止内存碎片化引入的结构,对内存分配的区域本身进行多重化管理,根据使用对象的目的。对象的大小分配内存,从而提高了使用内存管理 的效率。

    相关文章

      网友评论

          本文标题:2019-04-16

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