当前位置:  开发笔记 > IOS > 正文

在Core Data中存储Swift值类型

如何解决《在CoreData中存储Swift值类型》经验,为你挑选了1个好方法。

有没有办法使用storeSwift的value类型,例如enums或者structs在Core Data中?

这样做的最佳方法是什么?



1> Kametrixom..:

它实际上非常简单:只需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)

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有