iOS开发学习之内存管理笔记简述
2015-08-24 15:54
387 查看
大家好。今天简述一下iOS当中的内存管理,自从iOS5出现后,apple增加了ARC机制以后,给开发人员带来了不少的方便,为了来更好地去理解,我们还是有必要去了解的。
1. 在OC中,每个对象都有一个保留计数器,每当我们创建一个对象时都有一个初始值为1的保留计数,每当释放的时候,保留计数都为0;
2. 创建自动释放的对象
要求以一个方法创建对象时,以自动释放的形式返回该对象是一个很好的编程习惯和编程实践。实现代码如下:
+(Person*)person
{
Person *per = [Person alloc] init];
return [per autorelease];
}
3.创建已保留属性
@property(retain)NSArray *colors;
synthesize创建后,自动保留该对象,如果该对象被重新赋值后,前面的值将会被自动释放。
4.创建对象的其他方式
一般规则:通过alloc.new.create.copy的任意方法构建一个对象,就必须承担起释放对象的责任。和类方法不同,带这些字样的方法一般不会返回自动释放的对象
5.释放对象
释放属性:self.year = nil;会调用OC合成的定义赋值方法,并释放以前赋值给该属性的任意对象
释放实例变量(非属性):[age release];实例变量在对象生命周期内,随时可以指向一个保留计数+1的对象必须释放当前赋值给age的任意对象,从而将计数置为0;
1. 在OC中,每个对象都有一个保留计数器,每当我们创建一个对象时都有一个初始值为1的保留计数,每当释放的时候,保留计数都为0;
2. 创建自动释放的对象
要求以一个方法创建对象时,以自动释放的形式返回该对象是一个很好的编程习惯和编程实践。实现代码如下:
+(Person*)person
{
Person *per = [Person alloc] init];
return [per autorelease];
}
3.创建已保留属性
@property(retain)NSArray *colors;
synthesize创建后,自动保留该对象,如果该对象被重新赋值后,前面的值将会被自动释放。
4.创建对象的其他方式
一般规则:通过alloc.new.create.copy的任意方法构建一个对象,就必须承担起释放对象的责任。和类方法不同,带这些字样的方法一般不会返回自动释放的对象
5.释放对象
释放属性:self.year = nil;会调用OC合成的定义赋值方法,并释放以前赋值给该属性的任意对象
释放实例变量(非属性):[age release];实例变量在对象生命周期内,随时可以指向一个保留计数+1的对象必须释放当前赋值给age的任意对象,从而将计数置为0;
相关文章推荐
- 开发人员、程序员与计算机科学家三者之间的区别
- 开发人员一定要加入收藏夹的网站 推荐
- 对Web开发人员有用的8个网站小结
- Web开发人员常用速查手册推荐
- 开发人员一定要加入收藏夹的网站
- 开发者的自我修养:技术更新,方向明晰
- 提高开发人员工作效率的六大方法
- 软工三——开发平台学习和分析报告
- 女开发人员跳槽前途渺茫
- 原来国外程序员爱用MAC是这个原因啊
- iOS UIAppearance使用详解
- iOS 开发的一些小技巧篇
- iOS 开发的9个超有用小技巧
- 关于@synchronized(self)的用法
- addChildViewController的用法
- 开源不只是面对开发者更多的问题还在等待我们去深思
- 移动客户端设计开发经验(1)-流程篇(原创理论)
- C++ Builder是一个可视化快速应用程序开发工具
- Fiddler 教程
- Mojito是一个JavaScript Web应用框架