1

我目前正在尝试使用我的代码将蓝牙设备的 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 中?谢谢

4

1 回答 1

3

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

于 2016-01-28T18:25:52.027 回答