目标C中强与弱的区别

目标C中强与弱的区别

我是新来的,所以我的第一个问题是:

.之间有什么区别?strongweak在……里面@property指向对象的指针声明?

还有,是什么nonatomic刻薄?


繁华开满天机
浏览 523回答 3
3回答

繁星coding

强引用(在大多数情况下将使用该引用)意味着您希望“拥有”使用此属性/变量引用的对象。编译器将注意任何分配给该属性的对象都不会被销毁,只要您用强引用指向它。只有在将属性设置为nil该对象是否会被销毁(除非一个或多个其他对象也持有对其的强烈引用)。相反,如果引用较弱,则表示不希望控制对象的生存期。您所引用的对象弱只存在,因为至少有一个其他对象持有对它的强引用。一旦不再是这种情况,该对象将被销毁,您的弱属性将自动设置为nil..IOS中最常见的弱引用例是:委托属性,这些属性通常被弱引用以避免保留周期,以及视图控制器的主视图的子视图/控件,因为这些视图已经被主视图强烈持有。原子方法和非原子方法是指编译器为属性合成的getter和setter方法的线程安全性。原子(默认)告诉编译器使访问器方法线程安全(在访问Ival之前添加一个锁),而非原子方法则相反。非原子的优点是性能稍高。在iOS上,苹果公司几乎所有的属性都使用非原子技术,所以一般建议你也这样做。

小怪兽爱吃肉

强壮:将传入值分配给它,它将保留传入值并释放实例变量的现有值。瘦弱将传入的值分配给它而不保留它。因此,基本的区别在于新变量的保留。一般说来,你想保留它,但在某些情况下,你不想要它,否则你会得到一个保留循环,无法释放内存,对象。例如。obj 1保留obj 2,obj 2保留obj 1。要解决这种情况,需要使用弱引用。
打开App,查看更多内容
随时随地看视频慕课网APP