问题标签 [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 投票
1 回答
931 浏览

objective-c - 涉及绑定时如何覆盖 NSError 表示?

我在 Cocoa Bindings 中一直遇到的一件事是错误呈现,例如,当用户在附加了格式化程序的文本字段中键入错误值时。通常我会覆盖willPresentError:响应程序链中的某个位置,但我的问题是 Bindings 系统创建的 NSError 对象没有包含足够的信息来告诉我失败的原因,或者它是否是我有兴趣自定义的错误。当验证问题发生时,我可以完全从方程式中删除绑定并创建自己的错误,但我觉得我会以这种方式扔掉一些有用的东西。

我已经能够通过实现 NSControl 委托方法并将失败的控件存储在我的视图控制器中的实例变量中来解决这个问题。如果到时候它不是零willPresentError:,我知道什么无法验证。

这在第一响应者更改时有效,但在我调用commitEditing视图控制器时无效,所以它对我来说只是部分有用。

我能看到的唯一其他选择是将 NSFormatter 排除在外,并validateValue:forKey:error:在我的 Core Data 托管对象中使用来处理验证。这对我来说没有使用格式化程序那么有意义,但至少我可以完全控制 NSError 对象。

我觉得我必须遗漏一些东西才能与错误处理产生这种脱节。有什么建议么?

0 投票
2 回答
1955 浏览

iphone - 核心数据的生产者消费者问题

我有一个核心数据应用程序。在生产者线程中,我从 Web 服务中提取数据并将其存储在我的对象中并调用 save。我的消费者对象是一个显示相同的表视图控制器。但是,应用程序崩溃并且我收到 NSFetchedResultsController Error: expected to find object (entity: FeedEntry; id: 0xf46f40 ; data: ) in section (null) for delete

在控制台上。当我调试它时,一切正常。所以我明白这就像一个种族问题。

这类问题是如何解决的?使用核心数据设计生产者-消费者应用程序的最佳方式是什么?

0 投票
1 回答
4490 浏览

iphone - CoreData 相当于 sum...group by

我有以下伪 SQL 架构:

如果我将其转换为使用 CoreData,是否有一种等效的方法可以使用另一个查询谓词来获取每个组件的总持续时间?我认为 SQL 等价物是

还是我必须进行查询,然后自己总结所有组件?

0 投票
2 回答
32680 浏览

iphone - Core Data NSPredicate for relationships

My object graph is simple.

I've a feedentry object that stores info about RSS feeds and a relationship called Tag that links to "TagValues" object. Both the relation (to and inverse) are to-many. i.e, a feed can have multiple tags and a tag can be associated to multiple feeds.

I referred to How to do Core Data queries through a relationship? and created a NSFetchRequest. But when fetch data, I get an exception stating,

NSInvalidArgumentException unimplemented SQL generation for predicate

What should I do? I'm a newbie to core data :( I know I've done something terribly wrong... Please help...

Thanks

--

--

0 投票
2 回答
5602 浏览

iphone - 为核心数据应用提供基础数据?

我正在开发一个 Core Data 应用程序(适用于 iPhone 3.0,尽管我认为这在这里并没有什么不同),它需要附带一个充满数据的“入门”数据库。使用 SQLite,我只需让应用程序在首次启动时将填充的数据库从捆绑包中复制到应用程序的文档目录中,然后加载该数据库——所有信息都会随之而来,我们就可以开始了。但是对于 Core Data,我不确定是否可以将 Persistent 存储保存到 App 包并在 Core Data 开始执行它之前复制它。这会导致任何问题吗?有相当多的初始数据,所以我不想将它打包成另一种格式而不得不解析它。

0 投票
2 回答
594 浏览

iphone - NSFetchRequest - 它可以返回一个属性数组吗?

除非我错过了文档中的某些内容,否则我看不到是否可以执行 anNSFetchRequest以便它返回对象属性的数组,而不是对象本身。

例如,我有:

我想查询类似close >= $today. 但是,这给了我一个 SaleDate 数组,而我真正想要的是一个不同的 Sale 数组。我将它与 a 一起使用NSFetchedResultsController,因此需要它来处理 Sale 对象。

顺便说一句,在使用二进制存储时,我还有另一个(首选)查询在工作——正是 SQLite 存储让我费尽心思去寻找一个替代但等效的查询。

0 投票
2 回答
3881 浏览

cocoa - NSArray 到核心数据项

我有一个方法可以读取 xml 文件并将 xml 节点存储在名为 *nodes 的 NSArray 中的某个 XPath 路径中。我想要做的是获取数组中的每个项目并将其添加到一个名为 Category 的核心数据实体,其属性为“name”。

我尝试了许多不同的方法来创建实体,但我不确定有效地做到这一点的正确方法。这是用于创建 NSArray 的代码,关于如何实现它的任何想法?(忽略 NSError,我将在最终版本中修复此问题)

{

}

编辑 - 我的循环代码

0 投票
3 回答
1071 浏览

iphone - Core Data:是否可以使用 Core Data 构建桌面应用程序来为 iPhone 应用程序创建数据模型?

我目前正在决定是否使用 Core Data 来管理我的 iphone 应用程序中的数据。

该应用程序涉及将一个相当大的内容库放在一起,这些内容需要本地化并且具有相当少的关系。我想到使用核心数据的一个好处是,我或许可以构建一个桌面客户端来管理应用程序的数据,然后将生成的文件与 iPhone 应用程序打包以用作其内容数据库。

由于我对核心数据的了解相当有限,我想知道这是否可能?他们是否有任何最佳实践可以为我指明方向?

0 投票
2 回答
267 浏览

objective-c - 您如何在大纲视图中制作文本单元格以显示父行有多少个子项?

您如何使作为大纲视图(连接到 NSTreeController)中的顶级父行的行在文本单元格中显示它有多少个子级?

如果这有点令人困惑,这里是我的意思的图片。

替代文字
(来源:sourceforge.net

我说的是圆圈中一行右侧的数字,它显示了父母有多少孩子。

0 投票
2 回答
4385 浏览

cocoa - CoreData - 如何创建 NSManagedObject 子类的子类(Generation Gap 模式)

我敢肯定这一定是一个愚蠢的问题,但我已经搜索了网络,但找不到答案。很多人都在谈论使用 Generation Gap 模式,其中您有一个从模型生成的 NSManagedObject 子类,然后将其子类化以添加瞬态属性和行为。这样做的好处是,如果您更改了持久化模型,您可以再次生成基本文件,而不会覆盖您自己的代码。

我有一个从 NSManagedObject 派生的基本 CardMO 对象。然后我将其子类化以制作我自己的 Card 对象。

我的问题是,如何创建一个托管的 Card 对象?

我试过:

但是这个对象并不是真正的卡片,当然当我继续在这个对象上调用卡片方法时也会有一个例外。

我尝试使用 alloc / init 创建一个 Card(其中 init 只调用 [super init]),然后将其添加到 managedObjectContext 中,如下所示:

这给了我一个神秘的错误“无法在 NSManagedObject 类 'Card' 上调用指定的初始化程序”

我尝试通过调用 [NSEntityDescription insertNewObjectForEntityForName:@"CardMO" inManagedObjectContext:[AIStoreManager sharedAIStoreManager].managedObjectContext] 而不是 [super init] 来修改它。在这种情况下,我返回的对象又是一个 CardMO,我不能在它上面调用 Card 方法。

我应该做什么?

而且(对于奖励积分:-) - 在我通过了这个障碍之后,我需要从 XML 创建我的其他 Card 对象,然后将它们转换为 NSManagedObjects。我正在使用基于 Apple 的 XMLReaderSAX 的代码——我将此代码交给了一大块 XML,它给了我一个包含许多 Card 对象的数组。我可以稍后将这些对象添加到我的托管对象上下文中,还是必须进入 XMLReaderSAX 并更改它创建这些对象的方式?

我正在 3.0 上编写一个 iPhone 应用程序,但我认为这对于 10.5 的 Core Data 是相同的。