我花了很多时间尝试自己解决这个问题,并已经仔细检查了SO上提供的相同错误的答案。因此,以下是我已经排除的可能原因列表:
然后这个文件也停止编译了。
因此,对于某些文件,它会说将
当然,那个项目在一天前使用 Xcode 6 编译正常。
我不知道该怎么解决这些问题,任何帮助都非常有用。
更新:
我将无法编译的项目上传到了 GitHub 上。
- 并没有像这里所指示的框架问题。我创建了另一个应用程序,并设置了相同的框架,一切正常。
- SwiftyJSON也没有问题,在测试项目中也能够正常工作。
- 代码中没有任何编译问题。
- 我使用比较工具分别查看了两个不同的project.pbxproj文件(来自我的原始项目和新的测试项目),以查找项目设置中的差异,但结果都相同。
- 我还比较了两个项目的构建命令选项,结果也相同。
当我转到报告导航器并查找每个未成功编译的文件时,我发现了一些奇怪的相关性:任何使用NSString
API的文件都无法编译通过。为了证明这个假设,我找到了一些成功编译的文件,并添加了以下代码行:
let abc = NSString(string: "abc")
然后这个文件也停止编译了。
因此,对于某些文件,它会说将
String
类对象强制转换为 as NSString
是无效的,在某些地方 NSAttributedString
/NSString
创建失败,在其他一些地方调用 compare
或 rangeOfString
函数是不正确的。但是,当我复制粘贴所有导致 Segmentation fault
错误的代码片段到我的新项目中时,它们成功编译了。当然,那个项目在一天前使用 Xcode 6 编译正常。
我不知道该怎么解决这些问题,任何帮助都非常有用。
更新:
我将无法编译的项目上传到了 GitHub 上。
let abc = NSString(string: "abc")
可以单独编译。你能提供一个最小的展现这个问题的代码示例吗?- 无论如何,编译器分段错误都是一个 bug,应该向苹果公司报告。 - Martin R