您的位置:首页 > 其它

iphone使用loadNibNamed载入view在内存中得注意事项

2013-08-08 12:59 302 查看
首先给大家介绍loadNibNamed得作用,比如我们自己设计了一个view,并且在nib中指定了,那么便可以通过下面得方法把 自己得View 给提取出来.

NSArray中得元素是什么?

大家双击xib文件中,里面得元素会依次存储在你得NSArray* nib数组中.

NSArray* nib = [[NSBundle mainBundle] loadNibNamed/@"CustomCell" owner:self options:nil];

for(id item in nib)

{

if([is isKindOfClass:[youview class]]){

//找到了你自己需要得view

}

}

在这个时候生成后会让引用计数器变为1,但是需要注意得,owner:self ,在owner自己dealloc得时候,系统会自动帮你将你得youview得引用计数器-1得。

那么引发了一个需要密切注意得问题:那么也就是在你得dealloc得时候,你得视图得引用计数值必须为1。

举个例子

NSMutaleArray* array = ....... //1
[array addObject:youview]; //2

[youview release];//1

那么在你得 dealloc你肯定会这样做:

[array release];//这个时候,实际上你得youview的引用其实已经为0了 //0

youview便会自动回收

但是这个时候,owner:self 系统又会自动帮你回收,但是实际上你的引用计数已经为0了,所以就会出现异常了。

正常情况是,在addObject 后,不调用[youview release]就行了。

转载地址:http://blog.csdn.net/hamasn/article/details/7780495
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: