正则表达式不再工作(Swift 1.2)

时间:2015-04-14 05:30:51

标签: ios regex string swift optional

我一直在使用:

    func isValidPassword(testStr2:String) -> Bool {
        println("validate password: \(testStr2)")

        let passwordRegEx = "[A-Z0-9a-z._%+-:/><#]{6,30}"

        if let passwordTest = NSPredicate(format: "SELF MATCHES %@", passwordRegEx) {
            return passwordTest.evaluateWithObject(testStr2)
        }

        return false
    }

检查字符串是否包含相应的字符。但是自从swift 1.2更新后,我得到一个错误说&#34;条件绑定中的绑定值必须是可选类型&#34;

我尝试过添加问号。但我无法找到解决问题的方法。任何人都知道出了什么问题?

1 个答案:

答案 0 :(得分:2)

extension NSPredicate {
    convenience init(format predicateFormat: String, _ args: CVarArgType...)
}

在Swift 1.2中不再是一个可用的初始化程序,所以你不能 (并且不需要)使用可选绑定测试返回值:

let passwordTest = NSPredicate(format: "SELF MATCHES %@", passwordRegEx)
return passwordTest.evaluateWithObject(testStr2)