存档时Xcode 5挂起

时间:2014-01-08 16:26:56

标签: ios objective-c automatic-ref-counting xcode5 archiving

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

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

1 个答案:

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