1

現在、次のコードを使用して、Bluetooth デバイスの 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。Core Data は、処理方法を認識しているフォームとの間の変換を処理します。

于 2016-01-28T18:25:52.027 に答える