Xcode挂起“编译Swift源文件”

我正在运行Xcode 7.3.1。 在构建基于Swift的项目时,它依赖于“编译Swift源文件”。 我尝试过各种组合删除DerivedData ,清理,运行,重启Xcode,重新启动OS X,似乎没有工作。 有任何想法吗?

我做了一个课程扩展自己。 这也导致Swift编译器陷入循环而没有错误:

 class X: X 

感谢所有评论员的建议。 我将它缩小到map的闭包,引用了我删除的属性。 例:

 var people: [Person] = ... let foo = people.map { "\($0.name), \($0.age)" } 

Person看起来像:

 protocol Person { var name: String { get } var age: Int { get } } 

一切正常。 然后我在保持关闭不变的同时移除了age 。 这导致Xcode变得无可救药地混淆。 可能与Swift的类型推断有关。

尝试清理Project Build Folder

  1. 按住选项键并进入产品 – >清理构建文件夹(清除以前在菜单中)
  2. 如果您使用的是CocoaPods,请删除Workspace文件并运行Pod InstallPod Update

我认为2可能是原因。

将构建设置中的“Swift编译器优化级别”从“整个模块优化”更改为“单个文件优化”。 这可能不是你的问题,但它解决了我的问题,我被困了半天。 它可能只是最近Xcode版本中的一个临时错误(8.2.1是我在编写本文时使用的那个)。

我有同样的问题。 在我的情况下,它似乎是应用太多零合并操作的结果。 我正在构建一个json项目:

 json = [ "item1": value1 ?? "", "item2": value2 ?? "", "item3": value3 ?? "", ... "item14": value14 ?? "" ] 

这不会编译。 当我删除所有nil合并,使它看起来像下面,它编译得很好。

 json = [ "item1": value 1, "item2": value 2, "item3": value 3, ... "item14": value 14 ] 

我没有试图找出卡住之前物品数量的截止点。

在我的情况下,问题是在JSON解析期间。 我在JSON解析期间在字典参数中发送了一个可选值。

编译时间极长似乎有各种可能的原因。 角落或边缘的案例无处不在。 因此,最好的方法是观察和调查自己的案例。

虽然在评论中被其他人提及,但下面的步骤仍然值得更多关注:

  1. 运行项目
  2. 切换到Report Navigator (命令+ 9),然后选择当前正在运行的Build任务。 查看哪个源文件占用了大量编译时间。
  3. 检查该源文件的最近提交历史记录。 调查可能的原因。

xcode似乎连接超过5个字符串的问题。 看到这个: 当试图在Swift游乐场中执行时,Xcode会冻结吗? 给定的解决方法解决了我的问题

看着Report Navigator帮我找到了问题所在。 在我的例子中,问题是我试图将自动布局约束添加到UITableView中的UITableViewController的编程添加子视图中。

在我的情况下,XCode卡在大字典文字上:

 requestParameters = [ "asset" : "...", "user" : "...", // about 15 additional keys ] 

更换此部件后,问题已解决:

 var requestParameters = [String : Any]() requestParameters["asset"] = "..." requestParameters["user"] = "..." // about 15 additional keys 

在我的情况下,我改变了

 bookingPassengers.append(["paxType": passengersData[passIndex].travellerKind ?? " " , "firstName": passengersData[passIndex].firstName ?? " " ]) 

 bookingPassengers.append(["paxType": passengersData[passIndex].travellerKind! , "firstName": passengersData[passIndex].firstName! ]) 

之后一切都变好了