浅谈 ios 内存管理
2015-09-25 09:51
302 查看
对应ios平台的初学者,肯定会应为内存的管理而感到非常头疼,(小弟初写博客文采略差)下面我们就来了解在ios平台下oc 语言开发的
在内存的几个关键词,retain,release,assign,copy,strong
retain 维持内存,顾名思义,就是对当前对象的引用加一
release 刚好喝return相反 就是将当前对象的引用减一,(retain,release成对出现)alloc
出来的对象也需要release
assign assign用于一些基本数据类型(int,fload,double)
还有delegate必须要用assign 不要问为什么 以后你就知道了
copy 如果是申明NSString对象的时候 使用copy
strong 我就不解释了 在ios5 之后出来的 自动管理内存,到目前为止我也没有用过
说了这么多 不懂的肯定还是不懂 下面我就用一下简单的代码来说明
UILable *lbl=[[UILable alloc] init];
当前的lbl引用是1
NSMutableArray *muArr=[[NSmutableArray alloc] init];
[muArr addObject:lbl]; //当lbl加入到数组MuArr中
就相当于把lbl的引用加一 == [lbl retain]
当前lbl的引用是2
[lbl release];
当前的lbl引用为1
[muArr remobeAllobjects]; //当前相当于把MuArr
中所有对象移除lbl的对象引用减一 == [lbl release];
当前的lbl引用为0
@property(assign) int count;
@property(nonatomic,copy)
NSString
*str;
在内存的几个关键词,retain,release,assign,copy,strong
retain 维持内存,顾名思义,就是对当前对象的引用加一
release 刚好喝return相反 就是将当前对象的引用减一,(retain,release成对出现)alloc
出来的对象也需要release
assign assign用于一些基本数据类型(int,fload,double)
还有delegate必须要用assign 不要问为什么 以后你就知道了
copy 如果是申明NSString对象的时候 使用copy
strong 我就不解释了 在ios5 之后出来的 自动管理内存,到目前为止我也没有用过
说了这么多 不懂的肯定还是不懂 下面我就用一下简单的代码来说明
UILable *lbl=[[UILable alloc] init];
当前的lbl引用是1
NSMutableArray *muArr=[[NSmutableArray alloc] init];
[muArr addObject:lbl]; //当lbl加入到数组MuArr中
就相当于把lbl的引用加一 == [lbl retain]
当前lbl的引用是2
[lbl release];
当前的lbl引用为1
[muArr remobeAllobjects]; //当前相当于把MuArr
中所有对象移除lbl的对象引用减一 == [lbl release];
当前的lbl引用为0
@property(assign) int count;
@property(nonatomic,copy)
NSString
*str;
相关文章推荐
- ios MD5 加密
- iOS开发:2分钟快速集成支付宝快捷支付
- iOS右滑返回问题
- IOS中过滤HTML标签&&WebView的三种常用的使用方法
- 【iOS安全】iOS应用安全开发总结
- iOS开发脚踏实地学习day15-画板
- ios 类似的效果淘宝商品详细页面
- iOS开发-文件管理
- iOS-截屏
- iOS-图片剪裁
- iOS-图片水印
- 安装nagios
- iOS开发——项目需求-快速回到当前界面的顶部
- iOS开发——高级篇——地理定位 CoreLocation
- IOS 页面加载顺序
- 如何显示gif格式图片
- nagios(centreon)监控lvs
- iOS开发_textField的placeholder属性的字体颜色、大小的设置
- iOS9新字体对排版的一点影响
- iOS开发:沙盒存储类对象