問題タブ [nsmanagedobjectid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
501 参照

ios - ManagedObjectIDをメインスレッドに渡す方法

ManagedObjectを独自のコンテキストを持つバックグラウンドスレッドに保存しています。次に、データを使用できるように、管理対象オブジェクトのコンテキストを含む通知をメインスレッドに送り返したいと思います。

ドキュメントによると、代わりにオブジェクトではなくメインスレッドにIDを渡す必要があるようです。

これは正しいですか、そのIDで何をすべきですか?メインスレッドでManagedObjectを取得するには、IDを使用してメインスレッドからコアデータをフェッチする必要がありますか?

0 投票する
0 に答える
131 参照

ios - バックグラウンド スレッドで削除されたエンティティを処理する方法は?

マルチスレッド コンテキストで使用される objectID に関連する問題があります。

次のように、objectID を使用して、バックグラウンド スレッドによって呼び出される完了ブロックをエンティティに渡します。

これは、ネットワーク リクエストの進行中にエンティティの削除を開始するまで正常に機能していました (残念ながら、単純にキャンセルすることはできません)。

この問題を解決するために、代わりに NSManagedObjectContext の existingObjectWithID: メソッドを使い始めました。利点は、オブジェクトが存在しない場合は nil を返すことですが、別の問題に遭遇しました。オブジェクトが実際に存在するにもかかわらず、objectID が一時的な場合、existingObjectWithID は nil を返します。

エンティティが作成されたときに GetPermanentIDsForObjects を使用してみましたが、これは永続ストアでの作業を意味し、ランダムにクラッシュするため、理想的ではありません。

非同期ネットワーク要求の完了時にエンティティがまだ存在することを確認する適切な方法はありますか?

前もって感謝します !

0 投票する
1 に答える
441 参照

ios - NSManagedObject を渡す

コア データ アプリケーションの一部のコードをコントローラーからモデルに移動中です。

定期的に行う特定のフェッチ要求に対して NSManagedObjectID を返すメソッドを作成しました。

そして今、私がこれを行う方法を使用する必要がある場所ならどこでも:

NSManagedObjectID はスレッド セーフですが、NSManagedObject はスレッド セーフではありません。そして、かなりの量のコードをコントローラー クラスからモデル カテゴリに移動できることをうれしく思います。

しかし、これでは十分ではありません。スレッドセーフを尊重する方法で、たった 1 行のコードで NSManagedObject にアクセスしたいと本当に思っています。私の理想は、次のようなものを書くことができることです:

これは可能ですか?または、NSManagedObject のクリーンなアクセサ メソッドを作成するための戦略を持っている人はいますか?

0 投票する
1 に答える
136 参照

core-data - NSManagedObjects の大きな配列

アプリケーションには、オブジェクトの大きな配列を持つビュー コントローラーがあり、深刻なメモリ負荷がかかっています。解決策があります - 管理対象オブジェクトの代わりに managedObjectIds 配列のみを保存しますが、オブジェクト ID も長いため、メモリ管理を最適化する最も効率的な方法であるかどうかはわかりません。メモリ使用量を減らす解決策はありますか?

0 投票する
1 に答える
374 参照

ios - 保存した直後にオブジェクトの NSManagedObjectID を取得するにはどうすればよいですか?

保存した直後にオブジェクトの NSManagedObjectID を取得するにはどうすればよいですか?

を使用しNSNotification NSManagedObjectContextDidSaveNotificationて、更新/挿入された値を取得し、1 つの (唯一の) 管理オブジェクトからオブジェクト ID を取得しようとしましたが、オブジェクト ID を取得しようとすると、「認識されないセレクター」が表示されます。

保存した直後にオブジェクト ID を取得することはできますか?

0 投票する
1 に答える
356 参照

ios - ManagedObjectID を NSDictionary に格納する

私はローカル通知に取り組んでおり、各通知を識別するために、Core Data モデルからその辞書のキーとしてNSDictionaryを取得する必要があります。ManagedObjectID

問題は、これを行うと次のエラーが発生することです。

これは、辞書が特定のデータ型のみを格納でき、NSManagedObjectID を格納できないという事実に関係しています。

私の質問は、これNSManagedObjectIdNSStringorに変換する方法はありますかNSNumber。その特定の通知を削除するために後で識別するために、その特定のIDが本当に必要です。

これまでのコード:

0 投票する
2 に答える
2167 参照

ios - CoreData IOS で ObjectId を正しく取得するには?

CoreData ObjectId を使用して一意のレコードを保存しようとしています。この形式で ObjectID を取得できる場合があります

これにより、ID、つまり4を取得できます。ただし、この形式のObjectIdで返される場合があります

つまり、非常に苛立たしい NSTemporaryObjectID_Default です。IOS シミュレーターからプロジェクトをクリーンアップし、Xcode をクリーンアップしましたが、完全に機能していません。

これは、オブジェクト ID を取得するための私のコードです。

私を助けてください。