我最近将我的iOS项目转换为ARC。现在,当我尝试存档我的应用程序时,进程在编译最后一个源文件时/之后挂起。 在Activity Monitor中,两个clang进程几乎是100%CPU,我甚至无法关闭Xcode。 如果我将代码优化级别设置为无,一切正常(当然这不是最终解决方案)。
有任何建议如何解决这个问题?
答案 0 :(得分:0)
原来,它是ARC中动画块中的保留圆圈。使用weakSelf
就可以了。
__weak __typeof(self) weakSelf = self;
[UIView animateWithDuration:0.3f
delay:0.5f
options:UIViewAnimationOptionCurveEaseIn
animations:^{
__typeof(weakSelf) strongSelf = weakSelf;
[strongSelf doStuff];
// ...
}
completion:^(BOOL finished){
// ...
}];
我通过在verbos模式下通过命令行归档项目来解决这个问题。它卡在一个包含保留圆的视图控制器上。