最简单的IOS

来源:互联网 发布:山田凉介给知念项链 编辑:程序博客网 时间:2024/06/06 08:06

  1. ARC机制下的对象的回收的标准: 当没有任何强类型的指针指向对象的时候,这个对象就会被立即回收.

 

  2. 强类型指针 弱类型指针.

 

  3. 什么情况下叫做对象没有强指针向指向.

 
     1).  指向对象的强指针被回收.
 
     2).  指向对象的强指针被赋值为nil
 

  4. 在ARC的机制下,@property参数不能使用retain

     因为retain代表生成的setter方法是MRC的标准的内存管理代码.
     而我们在ARC的机制下 不需要这些代码.
 
     所以,在ARC机制下的setter方法 什么都不需要做.直接赋值就可以了.
 
 

  5. ARC机制下,我们关注的重点.

     当1个类的属性是1个OC对象的时候.这个属性应该声明为强类型的还是弱类型的.
     很明显,应该声明为1个强类型的.
 
     问题来了?
 
     如何控制@property生成的私有属性,是1个强类型的还是1个弱类型的呢?
 
     使用参数, strong和weak
 
     @property(nonatomic,strong)Car *car;
     代表生成的私有属性_car 是1个强类型的.
 
     @property(nonatomic,weak)Car *car;
     代表生成的私有属性_car 是1个弱类型的.
 
 
     如果不写,默认是strong.
 
 

  6. 使用建议.

 
     1). 在ARC机制下.如果属性的类型是OC对象类型的.绝大多数场景下使用strong
     2). 在ARC机制下.如果属性的类型不是OC对象类型的.使用assign
 
     3).  strong和weak都是应用在属性的类型是OC对象的时候. 属性的类型不是OC对象的时候就使用assign.
 
 
 
     --------
     在ARC机制下,将MRC下的retain换位strong
 
     @property(nonatomic,strong)Car *car;
     做的事情:
     1).  生成私有属性.并且这个私有属性是strong
     2).  生成getter setter方法的声明
     3).  生成getter setter方法的实现
 
          setter的实现:直接赋值.
原创粉丝点击