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

Regex No longer working (Swift 1.2)

我一直在使用:

    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 更新后,我收到一条错误消息 "Bound value in a conditional binding must be of an Optional type"

我试过添加问号。但我找不到解决问题的方法。有人知道出了什么问题吗?

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

在 Swift 1.2 中不再是可失败的初始化器,所以你不能 (并且不需要)使用可选绑定测试 return 值:

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