我正在尝试使用我的代码将蓝牙设备的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转换为String并存储到SQLite中。但它不太合适。任何人都可以建议我如何将NSUUID存储到SQLite中?谢谢
答案 0 :(得分:2)
如果我想保存NSUUID
并稍后返回同一对象的实例,我会声明该属性使用Core Data“transformable”类型。对于符合NSCoding
协议(NSUUID
所做的)的任何类,Core Data将自动调用NSCoding
方法来保存/加载原始类的实例。然后我可以只分配一个NSUUID
作为属性值,然后回读一个NSUUID
,Core Data将处理将其转换为/它知道如何处理的表单。