2011-08-03 14 views
1

フェッチプロパティと複数ManagedObjectContext

いくつかの理由で、Iは2 ManagedObjectContext、異なるNSPersistentStoreCoordinatorを(一方はNSSqlLiteType、パーソナルプラグインはNSInMemoryTypeである)を有するそれぞれを作成する必要があります。 SQLLiteデータベースの一部のオブジェクトは、InMemoryデータベース内のオブジェクトにアクセスする必要があります。私は、Appleドキュメントで、フェッチされたプロパティを使用して動作させる方法を見つけました(つまり、ここでは「ストア間の関係」の段落をご覧ください:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html)。 述語を実行すると、KVC準拠のエラーが表示されます。

キャッチされていない例外「NSUnknownKeyException」の原因でアプリケーションを終了しています:理由: '[valueForUndefinedKey:]:このクラスはキーステーションID。 '

ここはモデルです。 私はSQL Liteデータベースに格納されているManagedStationオブジェクトを持っています。私はメモリに格納されているManagedPassingTimeオブジェクトを持っています。 ManagedStationは、ManagedPassingTimesのNSSetを持つことになっています。そのために、ManagedPassingTimeにstationId属性を追加しました。 Stationをロードするときに、必要なManagedPassingTimeオブジェクトを作成し、ManagedPassingTimeのstationIdをManagedStation.identifierプロパティに設定します。最後に、$ FETCH_SOURCE.identifier MATCHES $ FETCHED_PROPERTY.stationIdという述語を持つManagedStationオブジェクトに、取得したプロパティ "passingTimes"を作成しました。フェッチされたプロパティには、ManagedPassingTimeオブジェクトがDestinationとして設定されています。

stationIdはManagedPassingTimeの属性なので、KVCを使用して値にアクセスできない理由はわかりません。私はManagedPassingTimeのvalueForUndefiniedKey:(NSString *)キーメソッドをオーバーライドしようとしましたが、このメソッドを決して入力しないようです。

あなたの誰かが一番小さなアイデアを持っていれば、それが最も役に立ちます。おかげさまで

答えて

1

私はこれを昨日実行しました。実際には、$ FETCHED_PROPERTYを離れていました。

だからあなたの場合にはあなたがXcodeの4で$ FETCHED_PROPERTYを使用する必要はありませんようだ

$FETCH_SOURCE.identifier MATCHES stationId

を試してみてください、多分それは、任意の不特定のオブジェがフェッチ財産上にあることを前提としています。彼らがxcode4のためのドキュメンテーションを更新するならいいかもしれない。

関連する問題