获取的属性和多个 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 选择中获取新添加和删除的选项?