问题标签 [core-data]

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 投票
3 回答
2611 浏览

cocoa - 具有多个存储的核心数据存储原子性

Core Data 允许您将多个持久存储添加到单个NSPersistentStoreCoordinator(每个具有不同的配置)名称中,从而将它们组合在一个NSManagedObjectContext. 我还没有发现 Core Data 如何处理多个商店的保存操作的原子性。

假设我有两家商店:

然后是时候拯救我这样做了:

该文档指出,事件的顺序将是:

  1. 保存商店 A
  2. 保存商店 B

如果商店 A 保存正确,但商店 B 由于某种原因无法保存怎么办?(例如磁盘上的文件被删除,或者权限使其只读,诸如此类)。我找不到任何详细说明 Core Data 是否会将更改回滚到存储 A 的文档。

在我看来,对象图会处于不一致的状态(即一个存储已更新,一个未更新)对我来说似乎很奇怪,但在多个存储之间执行完全原子保存有点棘手且资源密集。真的很想在这里澄清一下,也许来自对系统有更多经验的人!

0 投票
2 回答
3147 浏览

iphone - 在 iPhone 上的核心数据中存储二进制数据

如果我录制一个音频文件并且我有一个代表该录制的核心数据对象......我应该只引用磁盘上录制的 url,还是可以将它存储在核心数据中?

将其存储在核心数据中可能更容易,但听起来不是一个好主意。

0 投票
2 回答
1141 浏览

cocoa - 我必须在 NSManagedObject didTurnIntoFault 中调用 super 吗?

我必须打电话给超级didTurnIntoFault吗?我在文档中找不到任何指示。

0 投票
10 回答
32768 浏览

core-data - 我需要做什么才能让 Core Data 自动迁移模型?

我已阅读有关 Core Data 模型的自动/轻量级迁移的文档 - 但我在实现它时遇到了问题。

据我了解,应用程序应该注意到它拥有的模型和设备上已经存在的模型是不一样的。如果您只添加了属性或关系以及类似的简单更改,则应自动升级模型。

任何指针 - 我需要在 Xcode 中设置一些东西吗?

0 投票
1 回答
701 浏览

iphone - 如何在 Objective-c for iPhone 中创建关系对象

这是我的对象的接口:

主键将在 Sqlite 中自动生成,我将整数、帐户和类别的外键存储在 MyItem 表中。

帐户和类别将具有有意义的描述。我也应该为描述添加属性吗?像这样:

因此,在我的 Hydrate 方法中,我可以加入类别和帐户。

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

我的目标是在应用程序的初始启动时,我将显示一个带有标题和类别描述的 Tableview。

0 投票
8 回答
16847 浏览

objective-c - Core Data 实体中布尔属性的类型是什么?

我以与 Apple 的Core Data Utility Tutorial.xcdatamodel中描述的方式大致相同的方式以编程方式使用 Core Data(即不使用数据模型文件)。所以我的问题是,当我尝试将属性添加到具有 type 的实体时,它会出现一些问题。当我将它添加到我的子类头文件(在教程中,那将是)时NSBooleanAttributeTypeNSManagedObjectRun.h

编译失败,说error: property 'booleanProperty' with 'retain' attribute must be of object type.

似乎 Cocoa 中的某些地方使用NSNumber对象来表示布尔值,所以我尝试将其设置为

反而。但是,这会引发以下运行时错误:

使用 GDB,我可以将其追溯到源代码中将实体添加到托管对象模型的行:

所以我的问题是:我应该在自定义类头中将 booleanProperty 设置为什么类型?

0 投票
3 回答
2777 浏览

iphone - iPhone、核心数据和 JSON

我有一个带有 API 的网站,它使用 JSON 发布信息。我可以很好地访问这个 API,但我真的很想使用 Core Data 将信息存储在 iPhone 应用程序中。有没有办法将 Persistent Store 连接到 JSON API,这样我就可以使用网站作为 Core Data 的后端,而不必使用某种算法使它们保持同步。

我希望这很清楚。

0 投票
1 回答
6295 浏览

iphone - 如何在 iPhone 中使用 Core 数据模型连接或创建 Sqlite DB

我能够创建数据模型、实体和属性。我现在如何创建数据库?我是否必须手动创建它以确保所有属性和实体都已映射?

我正在关注Recipes Core Data 示例,并注意到RecipesAppDelegate.m 中的一个方法:

我可以在这里看到对 DB 文件的引用。

0 投票
4 回答
47824 浏览

iphone - 如何在 Xcode for iPhone 中创建 Core Data 模型后创建类

我在 Xcode 中创建了我的模型、实体、属性和关系。我的实体的类是如何创建的?我必须手动创建它们吗?

0 投票
3 回答
1637 浏览

objective-c - 核心数据:重新打开文档时出现奇怪的绑定错误。帮助?

我一直在构建一个核心数据应用程序来管理一些数据,但我被一个表明我的对象不符合 KVO 的错误所困扰。但是,我没有修改 NSManagedObject 的默认 KVO 合规性,现在我只能摸不着头脑了。

该错误影响的应用程序区域是创建一些类别并组织将存在于这些类别中的一些项目。项目可能存在多个类别,用户可以设置项目和类别查看顺序。简单的东西。

为了更好地可视化这一点,我设置的核心数据模型的关键部分如下所示。我稍微简化了实体的命名和属性:

该模型连接到界面构建器中的两个 ArrayController,一个用于类别,一个用于类别项。categoryitems 内容集通过 selection.categoryItems 绑定设置为类别数组控制器。这些数组控制器提供两个表视图。类别项目表的内容通过arrangeObjects.item.name 绑定到CategoryItem AC 控制器。

这一切都完美无缺,我正在根据我的心愿拖放和订购项目和类别。

除了一个奇怪的案例。

每当我创建一个只有一个项目的类别时,然后保存,如果我然后重新打开该文档,则会出现以下错误:

无法从 中删除<NSTableBinder 0x1627f670>键路径“item.name”的观察者<NSManagedObject 0x16273380>,很可能是因为键“item”的值已更改而未发送适当的 KVO 通知。检查 NSManagedObject 类的 KVO 兼容性。

之后界面似乎崩溃了,应用程序变得无法使用。我在网上搜索过,我所能发现的只是这表明 KVC 不合规。但我在这里使用标准的、几乎没有修改过的 Apple 类。

当我仅绑定到 CategoryItem 的 viewPosition 时,不会引发错误。即通过排列对象.viewPosition 而不是排列对象.item.name。就好像 categoryitem 和 item 之间的关系在表格最初观察到的那一点上还没有准备好(并且只有当有一个项目时)。

有人遇到过这种情况么?谁能想到一个可能的解决方法?