标签:
一.strong与weak
为什么UI控件一般用weak就可以?
因为我们在添加UI控件的时候一般会用addSubview操作,在addSubview的时候,就给该控件添加了一个强引用,所以在该对象被手动置为nil之前,或removeFromSuperView之前,或该控制器销毁之前,该控件不会被释放.addSubview不能等到该对象被释放后再使用.
如果控制器定义了一个控件用strong修饰,那么该控件被该控制器强引用,如果再用addSubview,那么该控件就有两个强引用,如果该控制器被销毁,该控件也仍然会被销毁.
如果该属性是一个控制器,如果用addChildViewController:的话,原理与一般UI控件一样,如果只用[self.view addSubview:vc2.view],那么该控制器对vc2没有强引用,vc2很容易被释放调.
给一个对象置为nil,该对象不一定会被释放,如果该对象有两个强引用,置为nil就不能被释放,但是向该对象发送任何消息都不会有反应.
二.copy和strong
为什么NSString和NSArray一般用copy?
三.
标签:
原文地址:http://www.cnblogs.com/i-o-s-/p/5794079.html