获取的属性和多个 ManagedObjectContext

Posted

技术标签:

【中文标题】获取的属性和多个 ManagedObjectContext【英文标题】:Fetched Property and multiple ManagedObjectContext 【发布时间】:2011-08-03 07:49:31 【问题描述】:

)

出于几个原因,我必须创建 2 个 ManagedObjectContext,每个都有不同的 NSPersistentStoreCoordinator(一个是 NSSqlLiteType,另一个是 NSInMemoryType)。 SQLLite 数据库的某些对象必须访问 InMemory 数据库中的对象。我在 Apple 文档中找到了一种使用获取的属性使其工作的方法(他们说,请查看此处的“跨商店关系”段落:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html)。 问题是,当执行谓词时,我得到一个符合 KVC 的错误:

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:此类不符合关键 stationId 的键值编码。”

这是模型。 我有一个存储在 SQL Lite 数据库中的 ManagedStation 对象。我有一个存储在内存中的 ManagedPassingTime 对象。 ManagedStation 应该有一个 ManagedPassingTimes 的 NSSet。为此,我向 ManagedPassingTime 添加了一个 stationId 属性。加载 Station 时,我创建所需的 ManagedPassingTime 对象并将 ManagedPassingTime 的 stationId 设置为 ManagedStation.identifier 属性。最后,我在 ManagedStation 对象中创建了一个获取的属性“passingTimes”,它具有以下谓词:$FETCH_SOURCE.identifier MATCHES $FETCHED_PROPERTY.stationId。 fetched 属性将 ManagedPassingTime 对象设置为 Destination。

由于stationId是ManagedPassingTime的一个属性,我不明白为什么不能使用KVC访问该值。我什至试图覆盖ManagedPassingTime中的valueForUndefiniedKey:(NSString*)key方法,但我似乎从来没有输入过这个方法。

如果你们中的任何人有最微小的想法,那将是最有帮助的。 谢谢。

【问题讨论】:

【参考方案1】:

我昨天遇到了这个问题,我让它工作的方式实际上是放弃了 $FETCHED_PROPERTY。

所以在你的情况下尝试

$FETCH_SOURCE.identifier MATCHES stationId

您似乎不需要在 xcode 4 中使用 $FETCHED_PROPERTY,也许它假定任何未指定的对象都在获取的属性上。如果他们能更新 xcode4 的文档就好了。

【讨论】:

以上是关于获取的属性和多个 ManagedObjectContext的主要内容,如果未能解决你的问题,请参考以下文章

在数据集中获取多个属性的名称和值

仅从具有多个属性的 HTML 选择中获取新添加和删除的选项?

如何使用 Core Data 中多个实体的属性获取属性值?

Typescript - 在字符串的开头和结尾删除多个字符/获取列表 JSON 元素的属性

1个子表单从多个父表单获取属性

批量获取多个 MPMediaItem 的属性