Hai*_*Hai 17
我做了一个课程扩展自己.这也导致Swift编译器陷入循环而没有错误:
class X: X
Run Code Online (Sandbox Code Playgroud)
bas*_*svk 14
我发现 RoystonP 在https://developer.apple.com/forums/thread/115303?answerId=391817022#391817022上发布的帖子很有用:
\n\n\n\n
\n- 打开活动监视器。
\n- 开始您的项目建设。
\n- 等待 build\xe2\x80\x99s 进度完全停止几分钟。
\n- 在活动监视器中找到 Swift 进程(它们应该使用近 100% CPU)并选择其中之一。
\n- 在菜单栏中,选择 \xe2\x80\x9cView\xe2\x80\x9d,然后选择 \xe2\x80\x9cSend Signal To Process\xe2\x80\xa6\xe2\x80\x9d
\n- 从下拉列表中选择 \xe2\x80\x9cAbort (SIGABRT)\xe2\x80\x9d。
\n- 单击 \xe2\x80\x9cSend\xe2\x80\x9d 按钮。这将模拟断言失败,因此编译器将打印有关 it\xe2\x80\x99s 正在执行的操作的信息,然后退出。
\n- 在 Xcode 中,切换到报告导航器(左侧窗格上的 \xe2\x80\x9cspeech bubble\xe2\x80\x9d 按钮)并选择构建。
\n- 向下滚动到现在失败的编译步骤,然后单击转录按钮(有五行的按钮,位于 \xe2\x80\x9cCompile [Filename]\xe2\x80\x9d 行的右侧)。
\n- 向下滚动查看诊断信息。它可能包括一个命令行标志列表、几行诸如 \xe2\x80\x9cIn pass SimplifyCFG\xe2\x80\x9d 之类的内容,以及堆栈跟踪。
\n
您可能需要重复步骤 6 和 7 才能使其正常工作。
\n感谢所有评论员的建议.我把它缩小到一个map
引用我已删除的属性的闭包.例:
var people: [Person] = ...
let foo = people.map { "\($0.name), \($0.age)" }
Run Code Online (Sandbox Code Playgroud)
在哪里Person
看起来像:
protocol Person {
var name: String { get }
var age: Int { get }
}
Run Code Online (Sandbox Code Playgroud)
一切正常.然后我删除了age
同时保持关闭不变.这导致Xcode变得无可救药地混淆.可能与Swift的类型推断有关.
尝试清理Project Build Folder
Pod Install
或Pod Update
我认为2可能是原因.
将构建设置中的"Swift编译器优化级别"从"整个模块优化"更改为"单个文件优化".这可能不是你的问题,但它解决了我的问题,我被困了半天.它可能只是最近Xcode版本中的一个临时错误(8.2.1是我在撰写本文时使用的那个).
编译时间过长的原因似乎有多种。角落或边缘情况无处不在。所以最好的办法就是观察和调查自己的情况。
虽然被其他人在评论中提到,但以下步骤仍然值得更多关注:
Build
任务。查看哪个源文件占用了大量编译时间。 归档时间: |
|
查看次数: |
14226 次 |
最近记录: |