我如何在 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 的字符串?
最佳答案
这方面的文档非常少,网络上也没有太多关于它的信息。在这里添加我通过一些挖掘、跟踪和错误找到的内容作为其他人的引用。
这似乎有效:
// 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
}
}
关于ios - 在 Swift 中实现核心数据验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30806614/