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

标签 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 的字符串?

最佳答案

这方面的文档非常少,网络上也没有太多关于它的信息。在这里添加我通过一些挖掘、跟踪和错误找到的内容作为其他人的引用。

这似乎有效:

// 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/

相关文章:

ios - ARKit API 示例

ios - 无法将 UISegmentedControl 与三个选项卡和 ContainerView 一起使用

java - libGDX 作为 "launcher"应用程序

ios - 什么是控制对存储服务器调用结果的属性的访问的正确方法?

ios - 推送通知无法获取设备 token

iphone - 核心数据跨存储关系与获取的属性

ios - dequeueReusableCellWithIdentifier UITableView 两次

ios - 在 iOS 10 和 iOS9 中接收推送通知时遇到问题

swift - 在 .linear 类型的 iCarousel 中快速自动滚动无限效果

iphone - 有没有办法为给定的 NSManagedObject 检索一组或一组键?