iOS非ARC内存管理摘要
2012-06-12 14:08
169 查看
关于ios内存管理。在开发过程中,内存管理很重要,我简单说明一下。
1.正确用法
UIView *v = [[UIView
alloc] init]; //分配后引用计数为1
[self.view
addSubview:v]; //这儿引用计数加1,为2
[v release]; //这儿引用计数为1
最后系统在回收self.view的时候,会先回收其subView,所以v会被自动回收
2.如果v是类的成员变量,写了如下代码,不需要再在类的dealloc方法里[v
release];
v = [[UIView
alloc] init];
[self.view
addSubview:v];
[v release];
如果在dealloc里调用了release,那么就多release了,会crash.
3.如果v是类的属性,分两种情况
a. @property (nonatomic,
assign) UIView *v;
这儿是assign, 然后分配内存的时候如果是这样
v = [[UIView
alloc] init];
[self.view
addSubview:v];
[v release];或是这样用
v = [[UIView
alloc] init];
[self.view
addSubview:v];
[v release];
都不需要在dealloc里[v release];
b.@property (nonatomic,
retain) UIView *v;
或 @property (nonatomic,
copy) UIView *v;声明的属性,那么这样分配内存
v = [[UIView
alloc] init];
[self.view
addSubview:v];
[v release];这样与a是一样情况,不需要在dealloc里释放。但如果是
self.v = [[UIView
alloc] init];
[self.view
addSubview:v];
[v release];加了个self,那么就要在dealloc里[v
release];
给新人配训时的摘要。
1.正确用法
UIView *v = [[UIView
alloc] init]; //分配后引用计数为1
[self.view
addSubview:v]; //这儿引用计数加1,为2
[v release]; //这儿引用计数为1
最后系统在回收self.view的时候,会先回收其subView,所以v会被自动回收
2.如果v是类的成员变量,写了如下代码,不需要再在类的dealloc方法里[v
release];
v = [[UIView
alloc] init];
[self.view
addSubview:v];
[v release];
如果在dealloc里调用了release,那么就多release了,会crash.
3.如果v是类的属性,分两种情况
a. @property (nonatomic,
assign) UIView *v;
这儿是assign, 然后分配内存的时候如果是这样
v = [[UIView
alloc] init];
[self.view
addSubview:v];
[v release];或是这样用
v = [[UIView
alloc] init];
[self.view
addSubview:v];
[v release];
都不需要在dealloc里[v release];
b.@property (nonatomic,
retain) UIView *v;
或 @property (nonatomic,
copy) UIView *v;声明的属性,那么这样分配内存
v = [[UIView
alloc] init];
[self.view
addSubview:v];
[v release];这样与a是一样情况,不需要在dealloc里释放。但如果是
self.v = [[UIView
alloc] init];
[self.view
addSubview:v];
[v release];加了个self,那么就要在dealloc里[v
release];
给新人配训时的摘要。
相关文章推荐
- iOS非ARC内存管理摘要 - 实践型
- iOS非ARC内存管理摘要
- iOS开发学习手动内存管理暂时抛弃ARC以及retain/assign知识——iOS工程师面试必考内容
- IOS开发(16)Objective-C-内存管理-自动引用计数(ARC)
- ios arc下内存管理
- iOS夯实:ARC时代的内存管理
- iOS: ARC & MRC下string内存管理策略探究
- iOS开发ARC内存管理技术要点
- iOS基础之内存管理(一)——ARC下的内存泄漏
- IOS ARC内存管理,提高效率避免内存泄露
- 移动开发:iOS内存管理之:引用计数、ARC、自动释放池autoreleasepool和便捷方法之间的关系
- iOS 非ARC内存管理 autorelease方法和@autoreleasepool
- IOS ARC内存管理,提高效率避免内存泄露
- iOS开发ARC内存管理技术要点
- iOS内存管理(MRC、ARC)深入浅出
- iOS开发--内存管理--学习手动内存管理暂时抛弃ARC以及retain/assign知识
- iOS开发ARC内存管理技术要点
- iOS夯实:ARC时代的内存管理
- IOS内存管理 ARC技术概述
- iOS开发ARC内存管理技术要点