swift - 将 NSUUID 存储在核心数据中导致错误

标签 swift core-data nsuuid

我目前正在尝试使用我的代码将蓝牙设备的 NSUUID 保存到核心数据中,如下所示:

let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context = appDel.managedObjectContext
let newDevice = NSEntityDescription.insertNewObjectForEntityForName("Devices", inManagedObjectContext: context)
newDevice.setValue(connectingPeripheral.identifier, forKey: "identifier")
newDevice.setValue(TextField.text, forKey: "name")
do{
try context.save()
} catch _ as NSError{

}

错误发生在

newDevice.setValue(connectingPeripheral.identifier, forKey: "identifier")

由于我无法将 NSUUID 存储到 SQLite 数据库中。我能想到的唯一方法是将 NSUUID 转换为字符串并存储到 SQLite 中。但它不是那么合适。谁能建议我如何将 NSUUID 存储到 SQLite 中?谢谢

最佳答案

如果我想保存一个 NSUUID 并稍后取回同一对象的实例,我会声明该属性以使用 Core Data“可转换”类型。对于任何符合 NSCoding 协议(protocol)(NSUUID 符合)的类,Core Data 将自动调用 NSCoding 方法来保存/加载原来的类(class)。然后我可以只分配一个 NSUUID 作为属性值,然后读回一个 NSUUID,Core Data 将处理它与它知道如何转换的形式之间的转换处理。

关于swift - 将 NSUUID 存储在核心数据中导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35055449/

相关文章:

ios - SCNText 不显示

ios - 基于关系获取数据的核心数据谓词给出错误“无法解析格式字符串”

iOS Core Data 获取新插入的、尚未保存的对象

ios - [[NSUUID new] UUIDString] 和 CFUUIDRef 之间有什么区别

ios - UUID 和最基本的级别是否只是一串唯一字符?

ios - iOS 的设备标识符ForVendor UUID 会一直相同吗?

ios - 在 swift 中使用延迟调用数组项 - 获取 UIResponder 错误

ios - 在 google+ IOS Swift 中分享

iphone - 核心数据 - 在 vi​​ewDidLoad 之前调用数据源方法

ios - 在另一个 Swift 项目中使用自定义 Swift 框架