有没有办法使用store
Swift的value
类型,例如enums
或者structs
在Core Data中?
这样做的最佳方法是什么?
它实际上非常简单:只需NSData
使用值类型的字节进行初始化.
您的价值类型:
struct MyStruct { let x : Int let y : Bool let z : Double }
设置和获取数据的功能
func valueToData(var t: T) -> NSData { return NSData(bytes: &t, length: sizeof(T)) } func dataToValue (inout t: T, data: NSData) { memcpy(&t, data.bytes, data.length) }
测试:
let originalValue = MyStruct(x: 3, y: true, z: 1.3) let data = valueToData(originalValue) // Save data to CoreData var s = MyStruct(x: 0, y: false, z: 0) // Empty Value dataToValue(&s, data: data) // Initialize with data // s is MyStruct(x: 3, y: true, z: 1.3)