我想更新模型并在每次文本字段更改时执行验证。 我目前在textFieldDidEndEditing委托中,但我很难搞清楚在validateValue方法中传递什么
func textFieldDidEndEditing(textField: UITextField) {
updateCustomObject() // sets the property to the value of the textfield
// What is the proper syntax here
customObject.validateValue(AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath: <String>)
}
答案 0 :(得分:0)
在自定义对象中,覆盖validateForInsert和/或validateForUpdate:
完成此操作后,只需保存您的托管对象并捕获错误:
(这只是一个例子而不是工作代码......)
do {
try managedObjectContext.save()
catch {
if let validationError = error as? ValidationError {
//inform the user or do something useful here
}
}
您的自定义对象可能包含以下内容(例如,不完整或有效)
enum ValidationError: ErrorType {
case TooLong
case TooShort
}
extension CustomObject {
override func validateForInsert() throws {
//similar to below
}
override func validateForUpdate() throws {
let success = //some conditions
if success == false {
throw ValidationError.TooLong
}
}
...