loadNibNamed的作用及注意事项

首先给大家介绍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]就行了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值