IOS atomic与nonatomic,assi…
来源:互联网 发布:单片机堆栈空间 编辑:程序博客网 时间:2024/06/06 07:32
atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。
assign
retain
copy
copy与retain:
Copy其实是建立了一个相同的对象,而retain不是:
1.比如一个NSString 对象,地址为0×1111 ,内容为@”STR”,Copy 到另外一个NSString 之后,地址为0×2222,内容相同。
2.新的对象retain为1
总结:retain 是指针拷贝,copy是内容拷贝。
assign与retain:
2. 了解到1中assign的问题,那么如何解决?最简单的一个方法就是使用引用计数(referencecounting),还是上面的那个例子,我们给那块内存设一个引用计数,当内存被分配并且赋值给a时,引用计数是1。当把a赋值给b时引用计数增加到2。这时如果a不再使用这块内存,它只需要把引用计数减1,表明自己不再拥有这块内存。b不再使用这块内存时也把引用计数减1。当引用计数变为0的时候,代表该内存不再被任何指针所引用,系统可以把它直接释放掉。
总结:上面两点其实就是assign和retain的区别,assign就是直接赋值,从而可能引起1中的问题,当数据为int,float等原生类型时,可以使用assign。retain就如2中所述,使用了引用计数,retain引起引用计数加1,release引起引用计数减1,当引用计数为0时,dealloc函数被调用,内存被回收。
- IOS atomic与nonatomic,assi…
- iOS - nonatomic & atomic
- ios atomic nonatomic区别
- iOS - nonatomic & atomic
- ios atomic nonatomic区别
- iOS atomic和nonatomic
- ios-nonatomic和atomic
- atomic与nonatomic
- atomic与nonatomic
- atomic与nonatomic解析
- atomic与nonatomic
- atomic与nonatomic
- 详解 atomic 与 nonatomic
- atomic与nonatomic区别
- atomic 与 nonatomic
- atomic与nonatomic
- iOS atomic和nonatomic区别
- nonatomic与atomic的区别
- iOS下JS与OC互相调用(一)-->UIWebView 拦截URL
- [IOS] Storyboard全解析
- AFNetworking 2.0 新特…
- iOS 开发 网络实时监测
- Retrofit学习(一)
- IOS atomic与nonatomic,assi…
- 远程访问ipython
- ARC的具体操作机制
- UIDeviceOrientation 和&nbsp…
- iOS6的旋屏控制技巧
- UILable字符串的不同字段的样式设…
- iOS数据持久化的四种方法
- iOS+的多核编程和内存管理
- android7.0 popupwindow在所点击的控件下方显示,会掩盖本身的控件,所以可以将高多加控件的本身高度