【发布时间】: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方法,但我似乎从来没有输入过这个方法。
如果你们中的任何人有最微小的想法,那将是最有帮助的。 谢谢。
【问题讨论】:
标签: iphone cocoa-touch core-data nsmanagedobjectcontext