問題タブ [nsincrementalstore]
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.
ios - AFIncrementalStore を使用して NSManagedObject とバインドする方法
使い方の詳細を探していますAFIncrementalStore
。それを段階的に実装する方法を知る必要があります。
私が正しく理解していればAFIncrementalStore
、それはサーバーからデータを取得するためのレイヤーであり、データモデルをマッピングするためのものです。私は正しいですか?
そのため、ローカル モデルにマッピングする必要がある URL はほとんどありません。それらはすべて GET リクエストを使用します。
例base_url/api/categories
応答として次の文字列を取得します。
では、AFIncrementalStore を使用してローカル データベースをこのデータにバインドするにはどうすればよいでしょうか。また、使用に関連する応答文字列に関係があることがわかる場合。ユーザーの配列には、コンサート ユーザーに対応する ID が含まれます。したがって、2 番目の質問は、モデルが関係を持たなければならないことをどのように指摘するかだと思います。
objective-c - NSIncrementalStore: オブジェクトの永続ストアは、この NSManagedObjectContext のコーディネーターから到達できません
RPC API 経由でサーバーにアクセスする NSIncrementalStore を実装しようとしています。すべてのデータをローカルにキャッシュする必要があるため、NSIncrementalStore を作成して、キャッシュとして使用される別のコア データ スタックを使用することから始めました。
そのため、最初にメタデータをセットアップし、キャッシュが使用するコア データ スタックをセットアップします。キャッシュ SQL ファイルは、ストアの初期化時に渡される URL です。
エンティティに対する単純なリクエストの実行リクエストは、次のコードのようになります。基本的には、リクエストを受け取って FetchRequest としてラップし、キャッシュ コア データ スタックでリクエストを実行するだけです。次に、返された objectID を呼び出しコンテキストで使用してオブジェクトを作成します。
これを試してみると、エラーで例外がスローされます
<unknown>:0: error: -[] : Object's persistent store is not reachable from this NSManagedObjectContext's coordinator
行で、NSManagedObject *managedObject = [context objectWithID:objectID];
これがなぜなのかわかりません-これは、アップルがドキュメントでこれを行うことを示唆している正確な方法です!
このエラーは、スレッド間でのコンテキストへのアクセスに関連しているようですが、私はそうしていません。ここで何が間違っているかについての提案はありますか?
ios - iOS用のPFIncrementalStore...誰かがそれを機能させましたか?
PFIncremental ストアで成功した人はいますか? ここ: http://sbonami.github.io/PFIncrementalStore/
サンプル プロジェクトをロードし、Parse キーを追加してアプリを起動すると、Parse にオブジェクトが表示されません。さらに、ライブラリの独自のテストを実装してオブジェクトを保存しようとすると、Parse インターフェイスに表示されません。
任意の支援や洞察をいただければ幸いです。私が提供できる情報が他にもあれば教えてください。
前もって感謝します。
core-data - NSIncrementalStore の newObjectIDForEntity
NSIncrementalStore を使い始めました。フェッチ要求を処理するときは、まず述語を処理して内部参照オブジェクトを取得する必要があります。次に、これらを objectID に変換し、コンテキストに対応する managedObjects を取得するように要求します。少なくとも、それが利用可能なドキュメントの私の解釈です。
「newObjectIDForEntity」は、永続的な objectID を取得するためにも使用されます (obtainPermanentIDsForObjects を参照)。
「newObjectIDForEntity」が何をするのか知りたいです。同じオブジェクトの新しいインスタンスを作成しますか、それとも毎回内部的に新しいオブジェクトを作成しますか? つまり、新しいマネージド オブジェクトを作成してからそのオブジェクトを取得すると、同じオブジェクトに対して "newObjectIDForEntity" を 2 回呼び出すことになります。コア データは現在、1 つまたは 2 つのオブジェクトがあると考えていますか?
ios - NSIncrementalStore ロードメタデータ
確かに、これはばかげた質問ですが、言葉は理解できますが、意味は理解できません。
NSIncrementalStore の loadMetaData 関数のドキュメントには、次のように記載されています。
ファイルベースの NSIncrementalStore のサブクラスは、長さゼロのファイルを指す URL で初期化されることを処理できなければなりません。これは、指定された場所に新しいストアが構築されることを示す指標として機能し、ストアを使用するアプリケーションが既知の場所に予約ファイルを安全に作成できるようにします。
長さゼロのファイルをどのように処理することになっていますか? 長さゼロのファイルをどのように認識しますか? 指定された NSURL の場所に (データベース) ファイルまたはディレクトリを作成するだけではいけませんか?
objective-c - NSIncrementalStoreNode updateWithValues の「値」引数は、変更された値またはデータの完全な新しいコピーのみを必要としますか?
私は電話しています:
NSManagedObject 値を更新してキャッシュを更新するために、NSIncrementalStore サブクラスで。私の質問はvalues
議論に関するものです。更新された属性またはデータの完全な新しいコピーを入れるだけでよいですか?
ドキュメントの説明には次のように書かれています。
「新しいデータを反映する」「値」が、更新された属性のみを参照するのか、オブジェクト内のすべての属性を参照するのかは明確ではありません。
ios - NSSaveChangesRequest.deletedObjects == nil で呼び出される NSIncrementalStore
私はNSIncrementalStore
、REST サービスに支えられた を作成中です。オブジェクトの POST および GET ではうまく機能しますが、それらを DELETE すると、次の問題が発生します。
- テスト通話
[context delete: object];
context.deletedObjects
含むobject
(予想通り)- テスト通話
[context save: &error];
- iOS は;で
NSIncrementalStore
sexecuteRequest:withContext:error:
を呼び出します。呼び出しが と の両方にNSSaveChangesRequest
到着したとき、私のコードはサーバーからどのオブジェクトを削除するかを見つけることができません。context.deletedObjects == nil
saveChangesRequest.deletedObjects == nil
コンテキストの呼び出しとその呼び出しの間にdeletedObjects
設定されるのはどうしてですか?nil
save
NSIncrementalStore
UPDATE考えられる原因:object.objectID
はまだtemporaryID
次のsave
. はNSIncrementalStore
現在、オブジェクト ID を取得してnewObjectIDForEntity:referenceObject:
おり、Apple のドキュメントからの説明はまだ適用されていないようです。
管理オブジェクト コンテキストに挿入された新しいオブジェクトには一時 ID が割り当てられます。この ID は、オブジェクトが永続ストアに保存されると永続 ID に置き換えられます。