我花了很多时间尝试自己解决这个问题,并且已经仔细检查了 SO 上的可用答案,但出现了同样的错误。所以这里列出了我已经从可能的原因中排除的事情:
- 表明框架没有问题 here .我创建了另一个具有相同框架集的项目,一切正常
- 没有issue with SwiftyJSON , 在测试项目中也能正常工作
- 代码中没有突出显示的编译问题
- 我使用比较工具检查了两个不同的
project.pbxproj
文件(来 self 的原始项目和新的测试项目),以发现项目设置中的一些差异,都是一样的 - 我还比较了两个项目的构建命令选项,结果都是一样的
当我转到 Report Navigator 并查找每个未成功编译的文件时,我发现了一些奇怪的相关性:任何使用 NSString
API 的文件都无法编译。为了证明这个假设,我找到了一些编译成功的文件,并在其中添加了以下代码行
let abc = NSString(string: "abc")
然后这个文件也停止编译。
所以对于某些文件,它表示使用 as NSString
强制转换 String
类对象是无效的,在某处 NSAttributedString
/NSString
创建失败,在其他一些地方调用 compare
或 rangeOfString
不正确等。但是当我复制粘贴导致 Segmentation fault的所有代码片段时
我的新项目出错,他们编译成功
当然,就在一天前,该项目还可以使用 Xcode 6 正常编译
我不知道从这里去哪里以及如何解决这些问题,任何帮助都会非常有用
UPD
我将无法编译的项目上传到 GitHub
最佳答案
在您项目的“MYHelpers.h/.m”中(大概来自 https://github.com/AlexandrGraschenkov/MYHelpers)
定义了一个带有一些实用方法的 NSString
类别:
#pragma mark - NSString+Utils
@interface NSString (Utils)
- (NSString *)trim; // trim whitespace characters with new line
- (NSString *):(NSString *)appendString;
- (NSURL *)toURL;
- (NSString *)URLEncodedString;
- (NSString *)URLDecodedString;
- (NSString *)lightURLEncodeString;
+ (BOOL)emailValidate:(NSString *)email;
- (CGSize)sizeForStringWithFont:(UIFont *)font constrainedToSize:(CGSize)size;
- (id)JSON;
@end
第二种方法
- (NSString *):(NSString *)appendString;
有一个空的选择器名称。这在 Objective-C 中是允许的, 你可以调用这个方法
NSString *foobar = [@"foo" :@"bar"];
(我不知道这个方法是不是故意用空定义的 选择器名称——我不推荐它。)
但它会导致 Swift 编译器崩溃。仅当 NSString
时才会发生这种情况
在 Swift 代码的某处被引用。
(编译器永远不应该崩溃,不管输入是多么的畸形,
所以我建议向 Apple 提交错误报告)。
您可以将方法重命名为
- (NSString *)appendString:(NSString *)appendString;
(如果您的项目中不需要它,则只需将其删除), 这应该可以解决问题。
关于ios - 命令因信号 : Segmentation fault: 11 compile error 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32672877/