请注意,我是而不是使用Interface Builder的。在ARC下创建__weak UIViewController子视图的简明代码
我已经做了我的子视图__weak
,以便它们在ARC 5上自动归零,当它们所引用的对象被释放时。这意味着我不必在viewDidUnload
中手动将它们清零(这似乎是最安全的模式)。
但是因为自己是弱者,我不能直接将它们分配给我的ivars当我alloc
他们,或ARC立即释放他们,我所发现的是,像这样分配给一个临时强大的本地变量的唯一解决方案:
UIView *strongTmp = [[UIView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:strongTmp];
weakIVar = strongtmp;
这是丑陋的,其目的不是没有详细的评论立即明显。我想要的东西(更)优雅,如:
[self.view addSubview:weakIVar = [[UIView alloc] initWithFrame:self.view.bounds]];
但是,这产生相同的编译器警告(该对象将立即分配后公布)。
有什么建议吗?提前致谢。
嘿布拉德/马克斯,你找到了这个问题的答案?我只是在几个地方遇到过这种情况,而且确实相当丑陋和烦人。 – SaamJB 2013-01-03 04:57:36