2015-04-14 3 views
0

Я использую:Regex больше не работает (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 
    } 

, чтобы проверить, что строка имеет соответствующие символы. Но начиная с быстрого обновления 1.2, я получаю сообщение об ошибке: «Связанное значение в условной привязке должно быть необязательного типа»

Я попытался добавить вопросительные знаки. Но я не могу найти, как исправить эту проблему. Кто-нибудь знает, что пошло не так?

ответ

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

не failable инициализатор больше в Swift 1.2, так что вы не можете (и не нужно) проверить возвращаемое значение с дополнительным обязательным:

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

пытается это прямо сейчас, у меня есть о 60, чтобы это изменилось, и это займет некоторое время :) Я буду отмечать это как правильно, если это сработало! Спасибо, сэр! –

+0

Ты, сэр, потрясающий :) –