在Swift中实现核心数据验证方法

时间:2015-06-12 15:17:18

标签: ios swift core-data

如何在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?

1 个答案:

答案 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
    } 
}