问题标签 [nsmanagedobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
10186 浏览

ios - NSEntityDescription entityForName 返回 nil

我对我的模型做了一些更改(但我还不想迁移,所以我只是删除应用程序,构建干净等)

但是,当我在 iPhone 或模拟器中运行它时,会出现以下错误:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“executeFetchRequest:错误:获取请求必须具有实体。”

我这样设置实体:

我的 managedObjectContext 不是零。但我怀疑它没有正确加载对象模型或类似的东西,因为如果我在模型中显示实体,则列表为空:

如何确保模型已加载?

0 投票
1 回答
2811 浏览

validation - 如何正确使用 CoreData 验证和错误框架?

我在 Xcode 中创建了一个模型,并且对于各种属性,我定义了最小值和最大值,并且在运行时由 coreData 强制执行。

我正在使用 NSManagedObject validateValue:forKey:error 检查用户输入值。

看到本地化错误消息不具体,我有点失望,我收到“操作无法完成。(Cocoa 错误 1620)”值太小和“操作无法完成。 (Cocoa 错误 1610)”的值太大。

它写在 coreData 文档中,“您可以本地化托管对象模型的大多数方面,包括实体和属性名称以及错误消息”。不幸的是,关于如何为错误消息实现它并不是很详细。

那么如何自定义错误消息?你如何本地化它们?是否可以以提及参考值的方式对其进行自定义,例如:“值应低于 %@”或“值应高于 %@”?

0 投票
1 回答
326 浏览

iphone - EXC_BAD_ACCESS NSArray of ManagedObjects(核心数据)

我的 iPhone 应用程序发生了一些奇怪的事情。我正在使用 Core Data 将数据存储在 SQLite 数据库中。我的应用程序启动后第一次尝试读取一个表以返回所有行以填充 UITableView,其中包含供用户选择的内容列表。如果他们选择了列表中的顶部项目,我会得到一个 EXC_BAD_ACCESS 异常。如果他们选择任何其他项目,一切似乎都很好。这是代码示例: Sport 和 Team 是 NSManagedObjects。sports 是使用 NSFetchedResultsController (fetchedObjects) 获取的 Sport 对象的 NSArray。我可以在 UITableView 中很好地显示对象列表(我对 cellForRowAtIndexPath() 调用使用相同的数组,没有任何问题

更新:它似乎只影响 NSArray 中的最后一条记录而不是第一条记录,直到它抛出 EXC_BAD_ACCESS 错误。在我再次重新启动应用程序后,问题消失了,代码按预期工作:(

0 投票
2 回答
4218 浏览

iphone - 核心数据:NSLog 输出不显示“字段”

我不理解 NSFetchRequest 返回的数组的 NSLog 输出。

我正在读取我的数据库并将内容放在一个数组中,循环遍历数组,然后使用 NSLog 输出内容。我不太明白日志文件中的输出。下面的代码:

日志文件内容:

这是什么意思?:

我想真正从数据库中查看该字段的内容。

我的数据库中有 15 条记录,每条记录中有 12 个字段。从我的基本理解来看,我的stories数组似乎保存了数据库中的整个记录​​,而不是单个字段。也许我需要一个二维数组来完成这个,如果是这样,我该怎么做呢?

最终,我想遍历数组并为每个字段创建 XML 标记。但是一步一步...

在此先感谢,斯蒂芬

0 投票
3 回答
1933 浏览

iphone - tableview coredata 临时对象

我使用 nsfetchedresultscontroller 使用带有 coredata 数据的 tableview。当视图加载时,我使用创建一个新实体

这样新实体就会出现在我的表格视图中。现在我希望这个实体只是临时的,但是当我在 tableview 中编辑一些对象并保存 managedObjectContext 时,临时实体也会被保存,我不希望这样。

他们是一种仅保存一个对象而不是 de managedObjectContext 中的所有内容的方法吗?

他们是否有其他方式为我的 tableview 制作临时对象。

任何帮助都会非常受欢迎。谢谢吨

0 投票
1 回答
475 浏览

iphone - 在内存存储和 SQLite 存储中使用 NSManagedObject 子类实体

我想使用单个 NSManagedObject 子类来表示一个项目。然而,很多时候,我将代表的项目是短暂的,不会被保存到持久存储中。似乎内存存储将是正确的设置。

然而,有几次用户可以选择“保存”一个项目,因此我希望将该项目持久化到 SQLite 存储中。

好像我需要两个商店。我需要两个上下文吗?是否有推荐的方法将项目从内存存储移动到“已保存”持久存储?在混合相同类型的持久性和非持久性托管对象时,人们可以推荐任何其他建议或问题吗?

0 投票
2 回答
331 浏览

core-data - 基于另一个对象属性填充 CoreData ManagedObject 属性

我有在 CoreData 中存储树结构的应用程序。有一个 ManagedObject,“Item”,它具有以下属性:

  • itemId(字符串)
  • 项目清单
  • 标题(字符串)
  • 父 ID(字符串)
  • 父级(与项目的关系)
  • 父标题(字符串)

parentId 指向另一个 Item 对象。

如何使属性 parentTitle 自动填充父项的标题?

0 投票
2 回答
185 浏览

iphone - 对多个 NSManagedObjects 使用单个视图

所以我有几个在我的几个核心数据实体中通用的属性。备注、网址等

我有一个用于编辑此信息的视图控制器,并将实体作为 NSManagedObject 传递给它

为了真正让对象处于我可以做出改变的状态,我会

这样我就可以设置事物的值并像往常一样保存 managedObjectContext 。

但是,这会使我的应用程序崩溃,但前提是我进入和退出视图控制器以一遍又一遍地编辑该字段。

这让我想到了我的问题:使用单个视图控制器编辑多个核心数据实体上的公共字段的最佳方法是什么?我应该在调用视图控制器时设置布尔值并填充正确的实体属性吗?

0 投票
3 回答
2301 浏览

iphone - CoreData:释放 ManagedObject

我在 iOS 4 iPhone 应用程序中使用 CoreData(以 SQLite 作为存储)来存储我最初从 xml 文件中检索的数据。我的数据模型包含超过 15 个实体,我担心内存消耗,因为我看到 CoreData 在内存中创建所有 NSManagedObject 来表示我的数据模型的对象图。我使用基于 SAX libxml2 的解析器解析 xml 文件,并尝试将每个实体的“聚集集”逐块存储在一起,但我想在插入此聚集并保存托管上下文后释放每个托管对象,按顺序为下一个聚集节省内存。我看到我必须使用 refreshObject: mergeChanges: 来平衡每个对象在通过关系与其他对象关联时收到的多重保留(如数据模型中所设计)。我在保存上下文后这样做,但接下来当我尝试在商店中再次查找时,试图获取我插入的内容,然后它什么也没返回。我错过了什么吗?

0 投票
1 回答
3213 浏览

iphone - CoreData:从未保存的上下文中获取对象

在我将 ManagedObject 插入上下文之后,我想稍后但在保存上下文之前获取它(我会在插入所有对象后保存)。如果上下文之前没有保存,那么稍后使用有关这些对象的获取来查询上下文似乎不会返回任何内容。有没有办法只保存到最后?(我想我可以将我的对象保存在数组或字典中并查询,但我认为 coredata 会为我做这个)