一.内存管理情况
2016-06-27 19:30
393 查看
1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象。当用户的代码运行告一段落,开始等待用户的操作,自动释放池就会被释放掉(调用dealloc),池中的对象都会收到一个release,有可能会因此被销毁。
2-成员属性:
readonly:不指定readonly,默认合成getter和setter方法。外界毫不关心的成员,则不要设置任何属性,这样封装能增加代码的独立性和安全性。相当于私有成员?
assign:表示只进行简单的赋值,不会发送retain消息。
retain:会向旧值发送release消息,向新值发送retain消息。
copy:向旧值发release消息,向新值发送copy消息。
3-引用计数特殊情况:
NSArray:当把一个对象添加到NSArray时,对象的引用计数会加1,移除时会减1。
UIView:addGestureRecognizer会对手势识别器的引用计数加1,removeGestureRecognizer会减1。
1)readwrite:是可读可写特性;同时生成get方法和set方法的声明和实现
2)readonly:是只读特性;只生成get方法的声明和实现
3)assign:是赋值特性;set方法的实现是直接赋值,用于基本数据类型
4)retain:表示持有特性;set方法的实现是release旧值,retain新值,用于OC对象类型
5)copy:表示赋值特性;set方法的实现是release旧值,copy新值,用于NSString、block等类型
6)nonatomic:非原子性,set方法的实现不加锁(比atomic性能高)决定编译器生成的setter getter是否是原子操作,atomic表示多线程安全,一般使用nonatomic
3-引用计数特殊情况:
NSArray:当把一个对象添加到NSArray时,对象的引用计数会加1,移除时会减1。
UIView:addGestureRecognizer会对手势识别器的引用计数加1,removeGestureRecognizer会减1。
2-成员属性:
readonly:不指定readonly,默认合成getter和setter方法。外界毫不关心的成员,则不要设置任何属性,这样封装能增加代码的独立性和安全性。相当于私有成员?
assign:表示只进行简单的赋值,不会发送retain消息。
retain:会向旧值发送release消息,向新值发送retain消息。
copy:向旧值发release消息,向新值发送copy消息。
3-引用计数特殊情况:
NSArray:当把一个对象添加到NSArray时,对象的引用计数会加1,移除时会减1。
UIView:addGestureRecognizer会对手势识别器的引用计数加1,removeGestureRecognizer会减1。
1)readwrite:是可读可写特性;同时生成get方法和set方法的声明和实现
2)readonly:是只读特性;只生成get方法的声明和实现
3)assign:是赋值特性;set方法的实现是直接赋值,用于基本数据类型
4)retain:表示持有特性;set方法的实现是release旧值,retain新值,用于OC对象类型
5)copy:表示赋值特性;set方法的实现是release旧值,copy新值,用于NSString、block等类型
6)nonatomic:非原子性,set方法的实现不加锁(比atomic性能高)决定编译器生成的setter getter是否是原子操作,atomic表示多线程安全,一般使用nonatomic
3-引用计数特殊情况:
NSArray:当把一个对象添加到NSArray时,对象的引用计数会加1,移除时会减1。
UIView:addGestureRecognizer会对手势识别器的引用计数加1,removeGestureRecognizer会减1。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 页面缓存:内存和文件之间的那些事
- Lua的内存管理浅析
- 跟我学习JScript的Bug与内存管理
- 跟我学习javascript的垃圾回收机制与内存管理
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- iOS App开发中的UISegmentedControl分段组件用法总结
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- iOS中UIAlertView警告框组件的使用教程