1

こんにちは、

これは私の最初の投稿です。これがどこかに回答されている場合は、ご容赦ください (検索しました)。

問題: システム上の複数のユーザー アカウント間で 1 つの Core Data データベースを共有する必要がある Cocoa アプリがあります。

アイデア: ユーザーからの要求を処理するデーモンを作成して (ユーザー特権の境界を越えるため)、Core Data からデータを保存/取得します。アプリケーションで使用される共有管理オブジェクト コンテキストを作成し、その MOC を NSXPCConnection を介してデーモンに渡します。デーモンには、完全に実現された Core Data Stack があります。次に、アプリで作成された MOC を、デーモンによって作成された MOC の子として設定できます。保存を押して完了ですか?

質問: これでも機能しますか? これは単なるばかげた考えですか?他の解決策は何ですか?NSManagedObjectContext は NSCoder プロトコルに準拠していますが、XPC で使用するには、サブクラス化して NSSecureCoding プロトコルに準拠させる必要がありますか? また、ManagedObject サブクラスが NSXPConnection で使用する NSSecureCoder プロトコルに準拠していることを確認する必要がありますか? コンテキストをすべて捨てて、管理対象オブジェクトを送信するだけでよいと思います。

NSXPCConnection がポインターを使用する代わりにオブジェクトをコピーすると仮定していますか? これは正しいです?また、オブジェクトは完全に実現されたオブジェクトとしてコード化/デコードされ、障害が発生しないため、おそらくパフォーマンスを念頭に置く必要があります。これは正しいです?

よろしくお願いいたします。

4

1 に答える 1