在 Xcode Beta 6 之后使用 NSPredicate 快速崩溃

Posted

技术标签:

【中文标题】在 Xcode Beta 6 之后使用 NSPredicate 快速崩溃【英文标题】:Crash using NSPredicate in swift after Xcode Beta 6 【发布时间】:2014-10-20 03:16:31 【问题描述】:

我的代码在 Xcode beta 5 中运行良好,但在下载 beta 6 后,它崩溃了。

这是我的代码:

extension String 

    /**
    * http://***.com/questions/3139619/check-that-an-email-address-is-valid-on-ios
    */
    func isValidEmail() -> Bool 
        let emailRegex = ".+@([A-Za-z0-9-]+\\.)+[A-Za-z]2[A-Za-z]*";
        let emailTest = NSPredicate(format: "SELF MATCHES %@",emailRegex);
        return emailTest.evaluateWithObject(self);
    

执行时,在 NSPredicate 行崩溃:

let emailTest = NSPredicate(format: "SELF MATCHES %@",emailRegex);

有人知道这个问题吗?

【问题讨论】:

您的代码对我来说似乎没有问题。你用哪个输入字符串测试它? 【参考方案1】:

尝试删除派生数据然后重建,这个方法解决了我的问题!

~/Library/Developer/Xcode/DerivedData/

【讨论】:

是的,试试看,不会有坏处的,我保证 很高兴它起作用了。我认为,自从它的新版本 beta 版本以来,很多东西都发生了变化,并且与 beta 5 不同,如果想知道 beta6 中的新内容,请阅读 beta6 版本,而不是来自开发者网站。 派生数据包含已编译(和预编译)文件。显然,beta 5 和 beta 6 之间存在一些兼容性问题。这可以解决很多症状。

以上是关于在 Xcode Beta 6 之后使用 NSPredicate 快速崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 8 Beta 6 文本断断续续且失真

安装 XCode 6 beta 4 后无法运行旧的 swift 项目

使用 Xcode6-Beta 运行 Xcode 5.1.1 项目

在 Xcode 6 beta 中使用 Images.xcassets

在 Xcode 6 beta 5 中使用“po”命令调试选定视图

Xamarin Studio 5 将与 Xcode 6 Beta 一起使用吗?