gpt4 book ai didi

ios - Swift 3 核心数据 - 实体(上下文 :) vs Entity(entity: Location. 实体(),insertInto:上下文)

转载 作者:搜寻专家 更新时间:2023-10-31 22:19:36 31 4
gpt4 key购买 nike

我观看了关于 Core Data 的 2016 WWDC 视频并查看了各种教程。我见过使用 Core Data Framework 创建对象以持久保存到 managedObjectContext 中的各种方法。

在示例中,我将 Day 作为一个实体。我想为用户使用应用程序的每一天创建一个新的 Day 对象。

我遇到过:

第一个选项

let entity = NSEntityDescription.insertNewObject(forEntityName: "Day", into: CoreDataHelper.context)
let object = NSManagedObject(entity: entity, insertInto: CoreDataHelper.context)

第二个选项

let object = Day(entity: Day.entity(), insertInto: CoreDataHelper.context)

第三个选项

let object = Day(context: CoreDataHelper.context)

并且知道人们还想出了其他的可能性。

下面两个选项有什么区别,因为我在WWDC视频中没有看到第二个选项的演示。第三个选项是自动插入到 managedObjectContext 中,还是应该采取某种方法将对象插入到上下文中,然后使用 NSFetchedResultsController 检索所有对象。

最佳答案

第二个选项是 NSManagedObject 上的指定初始化程序,它是 Day 的子类。

第三个选项是在调用选项 2 的 Day 上定义的便捷初始化程序。

第一个选项是废话。 🤔 第一行创建一个插入上下文的 Day 实例,就像选项 2 和 3 一样。第二行尝试通过传递 创建 Day 的实例Day 的实例到需要 NSEntityDescription 的参数。我怀疑选项 1 应该是这样的:

let entity = NSEntityDescription.entity(forEntityName: "Day", in: CoreDataHelper.context)
let object = NSManagedObject(entity: entity, insertInto: CoreDataHelper.context)

所有选项都具有相同的结果。我不确定为什么会有这么多变化。这是一个只有 Apple 才能回答的问题。希望这对您有所帮助!

关于ios - Swift 3 核心数据 - 实体(上下文 :) vs Entity(entity: Location. 实体(),insertInto:上下文),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42868892/

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