第1章:自动引用计数总结(一)

1.1 什么是自动引用计数

  自动引用计数(ARC,Automatic Reference Counting)是指内存管理中对引用采取自动计数的技术。

1.2 内存管理/引用计数

  1.2.2 内存管理的思考方式

  • 自己生成的对象,自己持有。
  • 非自己生成的对象,自己也能持有。
  • 不再需要自己持有的对象时释放。
  • 非自己持有的对象无法释放。

  对象操作与OC 方法的对应

对象操作 Objective-C 方法
生成并持有对象 alloc/new/copy/mutableCopy 等方法
持有对象 retain 方法
释放对象 release 方法
废弃对象 dealloc 方法

  关键点:

  有关 OC 内存管理的方法,实际上不包括在该语言中,而是包含在 Cocoa 框架中用于 OS X、iOS 应用开发。CoCoa 框架中 Foundation  框架类库中的 NSObject 担负内存管理的责任。Objective-C 内存管理中的 alloc/retain/release/dealloc 方法分别指代的 NSOject 类的 alloc 类方法、retain 实例方法、release 实例方法、dealloc 实例方法。

  自己生成的对象自己持有

   使用以下名称开头的方法名意味着自己生成的对象只有自己持有:

  • alloc
  • new
  • copy 
  • mutableCopy

  例如以下名称开头的方法,自己生成并持有对象:

  • allocMyObject
  • newThatObject
  • copyThis
  • mutableCopyYourObject

  但是对于以下方法则不是,虽然使用 alloc/new/copy/mutableCopy 开头,但是没有采用驼峰命名拼写法:

  • allocate
  • newer
  • copying
  • mutableCopyed

  不同于 alloc/new ,copy 方法利用基于 NSCopying 方法约定,由各类实现的 copyWithZone: 方法生成并持有对象的副本。与 copy 方法类似,mutableCopy 方法利用基于 NSMutableCopying 方法约定,由各类实现的 mutableCopyWithZone: 方法生成并持有对象的副本。两者的区别在于,copy 方法生成不可变更的对象,而 mutableCopy 方法生成可变更的对象。

  非自己生成的对象,自己也能持有    

  

 

 

 

 

 

 

         

posted @ 2017-09-21 07:58  鳄鱼不怕牙医不怕  阅读(150)  评论(0编辑  收藏  举报