- 58
- 0
初学oc,在网上我看到了strong和weak的解释:只要有一个强引用还未被释放,就算把所有弱引用释放了,这个引用也不会被释放。
但是我想问怎么创建一个只有弱引用的变量,如果创建了,会发生什么情况。
我在学习中遇到过一个问题,
@interface ViewController ()
// 我用声明了一个弱引用属性 一个label标签
@property (weak, nonatomic) UILabel *label;
@end
@implementation ViewController
CGFloat labelWidh = 85;
CGFloat labelHeight = 34;
CGFloat labelTopView = 454;
CGRect labelFrame = CGRectMake((screen.size.width - labelWidh) / 2, labelTopView, labelWidh, labelHeight);
// 在这里,编辑器会发出警告
// Assigning retained object to weak property; object will be released after assignment
self.label = [[UILabel alloc] initWithFrame: labelFrame];
self.label.text = @"code label";
self.label.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:self.label];
@end
实际运行会发现,label并没有出现在视图上。
在警告之前打断点会发现,定义的label属性早已变成了nil,我的猜测是由于一开始就是弱引用,没有强引用,所以就自动被释放了。不知道对不对,还请大佬们解释解释
3
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
