前言 首先说明一下,没接触过iOS 4及之前版本编程的人,很可能没用过assign、retain、copy关键字,这是因为iOS 5之后添加了ARC的特性,顺便提出来新的strong、weak关键字。相比而言,weak相当于老版本的assign(基本一致),strong相当于retain(一致 ...
声明属性时用strong或者retain效果是一样的 貌似更多开发者更倾向于用strong 。不过在声明Block时,使用strong和retain会有截然不同的效果。strong会等于copy,而retain竟然等于assign 当然定义Block还是应该用copy 还有其他需要注意的地方,可以参考这篇文章:iOS: ARC和非ARC下使用Block属性的问题 ,因为非ARC下不copy的Bl ...
2016-05-25 13:15 0 4303 推荐指数:
前言 首先说明一下,没接触过iOS 4及之前版本编程的人,很可能没用过assign、retain、copy关键字,这是因为iOS 5之后添加了ARC的特性,顺便提出来新的strong、weak关键字。相比而言,weak相当于老版本的assign(基本一致),strong相当于retain(一致 ...
strong,weak,retain,assign,copy nomatic 等的区别 copy与retain:1、copy其实是建立了一个相同的对象,而retain不是;2、copy是内容拷贝,retain是指针拷贝; 3、copy是内容的拷贝 ,对于像NSString,的确是 ...
前几天去面试,被问到了NSString属性声明中的copy和retain具体区别,对内存计数的影响,汗,当时没整明白,也没答出来,只知道NSString一般用copy. 首先做以下几个变量声明: @property (retain, nonatomic) NSString *retainStr ...
IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数。 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样。 (一般情况下: 后面会讨论例外情况) alloc 对象分配后引用计数为1 retain 对象 ...
一、atomic与nonatomic 1.相同点 都是为对象添加get和set方法 2.不同点 atomic为get方法加了一把安全锁(及原子锁),使得方法get线程安全,执行效率慢 nonatomic没有添加安全锁,执行效率快 一般iOS程序中,所有属性都声明 ...
, 常用语NSString ,指在赋值时使用传入值的一份拷贝。 3.retain retain用来释放旧的 ...
一,retain, copy, assign区别1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a 和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否 ...
IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数。 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样。 (一般情况下: 后面会讨论例外情况) alloc 对象分配后引用计数为1 retain 对象的引用 ...