gpt4 book ai didi

swift - 以优雅的方式将结构的属性传递给类实例

转载 作者:行者123 更新时间:2023-12-05 06:50:40 24 4
gpt4 key购买 nike

我有一个这样的结构:

struct MyStruct: Codable {
let id: String?
let item: String?
let description: String?
let status: Bool?
}

在代码中的某个点,我必须将其存储在具有相同属性的核心数据实体上。所以我必须这样做:

// new core data item
let newItem = MyObject(context: context)
newItem.id = myStruct.id
newItem.item = myStruct.item
newItem.description = myStruct.description
newItem.status = myStruct.status

现在假设这两个项目都有 50 个属性。我将不得不拥有 50 条这样的线,将内容从一侧保存到另一侧。

有没有更漂亮的方法来做到这一点?

最佳答案

您可以在返回 coreData 对象的结构中使用计算属性。例如:

struct MyStruct: Codable {
let id: String?
let item: String?
let description: String?
let status: Bool?

func toCoreDataObject() -> MyObject {
let newItem = MyObject(context: context)
newItem.id = myStruct.id
newItem.item = myStruct.item
newItem.description = myStruct.description
newItem.status = myStruct.status
return newItem
}

}

这样你就在结构体定义中写了一次 50 个属性的列表,然后如下调用函数

let coreDataObject = myStruct.toCoreDataObject()

关于swift - 以优雅的方式将结构的属性传递给类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66359163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com