我最近将我的iOS项目转换为ARC。现在,当我尝试存档我的应用程序时,在编译最后一个源文件时/之后,该过程会挂起。在Activity Monitor中,两个clang进程几乎在100%CPU上,我甚至无法关闭Xcode。如果我将代码优化级别设置为None,一切正常(当然这不是最终解决方案)。

任何建议如何解决这个问题?

有帮助吗?

解决方案

原来它是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模式下通过命令行归档项目来解决这个问题。它卡在一个包含保留圈的视图控制器上。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top