allItems()
、addItem:(Item*)item
などのメソッドを持つCore Dataと対話するためのリポジトリレイヤを作成しました。ここでitemはNSManagedObjectサブクラスです。アイテムを保存する必要があるときは、サブクラスのインスタンスを引数としてリポジトリに呼び出すメソッドを呼び出します。ただし、init
イニシャライザを使用することができず、コンテキストがリポジトリ内に隠されているため、これは機能しません。クラス間でNSManagedObjectサブクラスを移送する方法は?
このようなアーキテクチャのオブジェクトを転送するには、どのような方法が最適ですか? ItemDTOをオプションの周りを通過させるのですか?または、サブクラス化されたNSManagedObjectをまったく使用せず、動作するkey/valueを使用するなど、これを解決するより良い方法があります。
問題をもう少し説明できますか?あなたの問題は、リポジトリ層の外に新しい管理対象オブジェクトを作成できない、または後でオブジェクトを保存できないことですか? – jrturton
問題は、コンテキストがリポジトリレイヤー内で「隠されている」ということです。リポジトリレイヤーの外側にコンテキストをリークさせたくありません。私はそれを抽象化の固い地点として使用したいと思います。 – LuckyLuke
すべての管理対象オブジェクトに管理対象オブジェクトコンテキストへのポインタがあることにご注意ください。その特定の猫がバッグの外に出ているので、一種です。 – jrturton