gpt4 book ai didi

ios - NSManagedObject实体类方法

转载 作者:行者123 更新时间:2023-11-29 11:45:37 25 4
gpt4 key购买 nike

我最近意识到 NSManagedObject 的子类继承了一个类方法 entity ,它可以用来为类获取一个 NSEntityDescription 。但是,我习惯于在创建 NSEntityDescription 时必须指定上下文,就像 entityForName:inManagedObjectContext: 一样。可以使用更简单的 entity 方法吗?它将与什么上下文相关联?

这个方法是not really由 Apple 记录。

最佳答案

NSEntityDescription 不是托管对象上下文的一部分——它是托管对象模型的一部分。

当您加载数据模型时,它包含的所有实体描述都会被加载。类方法 +entity 之所以有效,是因为实体描述是与模型对象一起创建的。如果您尝试在 加载模型之前调用此方法,它会在 Objective-C 中返回 nil。 (在 Swift 中由于某种原因它返回一个非可选值,所以它不是 nil,但是如果你使用它你的应用程序会崩溃。不要问我为什么会这样。)

如您所述,您还可以使用 +entityForName:inManagedObjectContext:。但是请查看该方法的文档:

Returns the entity with the specified name from the managed object model associated with the specified managed object context’s persistent store coordinator.

因此,即使该方法采用托管对象上下文参数,它仍然使用托管对象模型。它使用上下文来查找模型。您获得的对象与上下文无关,它与底层数据模型相关联。

这两种方法同样安全。使用在您的代码中最有效的那个。

关于ios - NSManagedObject实体类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44064074/

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