声明UI控件属性用strong来修饰

首先我们来创建一个weak修饰的view.

@property (nonatomic, weak) UIView *ekView;

当我们在viewDidLoad里面创建的时候:
在这里插入图片描述
警告信息: 将保留对象分配给弱属性; 对象将在分配后释放
分析: ekView并不会被添加到self.view上,因为ekView已经被释放了, 不存在了.
weak修饰,引用计数并不会+1,所以为0,也就是被释放了.
strong修饰,引用计数+1,所以不为0,就会存在.如果你用strong修饰了属性,并且addSubview:了,虽然引用计数为2,但是当整个父视图被销毁的时候,它的引用计数就会为0,不会有问题.

这和IBOut不一样,这里是没有任何强引用来约束,创建之后就会被释放, 而IBOut,有subViews(copy强引用修饰的)属性存在,已经进行了强引用(此时view对于subViews一定是强引用),引用计数可以保证不为0,不会变成nil,所以可以用weak修饰. 在这里要想进行操作,可以创建一个UIView *kkView = [[UIView alloc] init],此时kkView的引用计数是+1的,然后self.ekView = kkView, 然后再addSubView就可以了.
weak:视图1存在,视图2不一定存在。取决于视图2是否有强引用。
strong:视图1存在,视图2就存在。因为strong会使引用计数+1.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值