如何在Swift中实现核心数据验证方法(这些方法采用Obj-C中的validate<Key>:error:
形式?)
在Obj-C中,我会在我的模型类中编写以下内容来验证 name 属性:
-(BOOL)validateName:(id *)name error:(NSError **)outError {
}
我可以通过执行以下操作将名称强制转换为NSString:((NSString *)(*name))
在Swift中,我认为这看起来像:
func validateName(name: AutoreleasingUnsafeMutablePointer<AnyObject?>, error: NSErrorPointer) -> Bool {
}
这是正确的形式吗?
如何将名称转换为Swift的String?
答案 0 :(得分:2)
关于此的文档非常稀少,并且在网络上没有太多关于它的信息。在这里添加参考作为其他人通过一些挖掘和追踪和错误找到的东西。
这似乎有效:
// Validating the 'name' attribute of NSManagedObject's descendant
func validateName(name: AutoreleasingUnsafeMutablePointer<AnyObject?>, error: NSErrorPointer) -> Bool {
if let name = name.memory as? String {
// do validation here when name is not nil
} else {
// when name is nil
return false
}
}