問題タブ [managedobjectcontext]

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 に答える
5393 参照

ios - ストーリーボードでコアデータを使用するためのiOSでのコンテキストの受け渡し

アプリデリゲートからビューコントローラーにコンテキストを渡す際に問題が発生します。私はインターネット上で多くのチュートリアルを見つけました、そしてすべてdidFinishLaunchingWithOptionsがビューコントローラを作成し、コンテキストプロパティを設定してそれをプッシュするためにメソッドを使用することを提案します。私の問題は、ストーリーボードを使用したいのですが、ビューコントローラーが作成され、アプリデリゲートではなく、ストーリーボード内にプッシュされます。

私は自分のアプリデリゲートでこれを実行しようとしました:

そしてこれは私のビューコントローラで:

デバッグすると、アプリデリゲートでコンテキストが正しく入力され、ViewControllerのプロパティも正常であることがわかります。しかし、私のsaveContactメソッドが呼び出されると、コンテキストは空になります。

これについて何か提案はありますか?ストーリーボードを使用してコンテキストをViewControllerに渡すにはどうすればよいですか?

0 投票する
3 に答える
998 参照

iphone - NSManagedObjectContext リセットでデータが失われているように見えますか?

私のコア データ ストアには、 "Test" という属性を持つ51Entry個のエンティティが含まれています。messageこれに対して NSFetchRequest を実行すると、それらがすべて存在することが確認されます。

ただし、メソッドには別の部分があります。これは、NSData の大きなチャンクを処理するためにメモリを集中的に使用するため、[oldContext reset];頻繁に呼び出す必要があります。

MOC から多くの NSData にアクセスするメモリ集約型のメソッドがあります。そのため、定期的に を呼び出します[oldContext reset];。この行がないと、メモリが不足します。

これを使用しても、正しい結果が返されないことがわかりました。これをテストするために、データ集約型のコードをコメント アウトし、属性を返すコードを残しました。そのうちのmessage51 個は "Test" に設定されています (別の NSFetchRequest で確認)。

ただし、使用[oldContext reset];すると、メッセージが「テスト」に設定された6つの結果しか返されません。これは私が使用しているコードです:

なぜそれがすべき51の「テスト」結果を出さないのかについて何か考えはありますか?

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

objective-c - 各スレッドが他のスレッドのデータに関連しないデータを処理できる場合、スレッド間で1つの共有管理対象オブジェクトコンテキストを再利用することは可能ですか?

タイトルの質問の簡単な例:1つのスレッドがPlaceエンティティを準備し、それに対して何らかの処理を行っており(特定のフィールドへの入力とその計算には時間がかかります)、その間にもう1つのスレッドはすでにCategoryエンティティを準備しています。2番目の「Category」スレッドはsave:&errorを使用してCategoryエンティティを永続化するため、処理ジョブが終了していない間も最初のスレッドのPlaceエンティティが保存されます。

私は正しいですか?1つの共有モックを使用した場合に説明されている問題が表示されますか?

ありがとう!

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

core-data - Core Data(Xcode)のmanagedObjectContextからオブジェクトを読み取る方法

tableViewでいくつかの数値を取得するプログラムがあります。いくつかの属性を持つエンティティを持ち、テーブルビューの列をそれらの属性にバインドできるCoreDataベースのプログラムがあります。ここで、各列の合計を取得したいのですが、行の各データを読み取って追加する方法が見つかりませんでした。使用しました

NSString * S = [self.managedObjectContext valueAtIndex:1 inPropertyWithKey:@ "aColumnName"];

しかし、私はこのエラーを受け取ります:

このクラスは、キー名のキー値コーディングに準拠していません。

誰かがそれについて私を助けることができますか?

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

ios - エラー: [__NSCFConstantString パス]: 認識されないセレクターが送信されました

Core DataiCloudの同期を実現しようとしています。

[self fetchedResultsControllerICloud] performFetch:&error]を実行しようとすると、

-(id)init

エラーが発生しました

[_persistentStoreCoordinatorICloud addPersistentStoreWithType:NSSQLiteStoreType文字列でリンク - (NSPersistentStoreCoordinator *)persistentStoreCoordinatorICloudメソッド

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

core-data - Core Data entityForName:nilは正当なNSManagedObjectContextではありません

コアデータへのデータの追加と取得に苦労しています。このコードは機能するはずですが、私のタイトルに見られるエラーをスローしています。基本的にNSUserDefaultsからデータを取得し、それをコアデータに書き込もうとしています。

+ entityForName:nilは、エンティティ名'Item''を検索する正当なNSManagedObjectContextパラメーターではありません

なぜですか?ここにある解決策のいくつかを試しましたが、何も機能していません。たとえば、これをAppDelegateに実装しようとしましたが、ManagedObjectContextでnilリターンが返されます。ありがとうございました!

0 投票する
3 に答える
1188 参照

ios - iOS管理対象オブジェクトコンテキストへの保存

エンティティを管理対象オブジェクトコンテキストに保存するための次のコードがあります。

私のドキュメントによると、私は次のことを理解しています。コンテキストに新しいエンティティを挿入した後、コンテキストを保存する必要があります。これにより、コンテキストの保存されていないすべてのデータが永続ストアにフラッシュされます。save:これは、管理対象オブジェクトコンテキストのインスタンスメソッドを使用して実行できます。BOOLこのメソッドの戻り値がである場合、YESoutコンテキストが確実に保存されます。

私がはっきりしていないのは、後の構文save:、具体的にはローカルの直前のアンパサンド'&'savingError variableです。これはコンパイラに何を伝えますか?

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

core-data - CoreData: すべての要素を削除した後の managedObjectContext の奇妙な要素

取り寄せで困っています。SQL エディターで確認すると、フェッチの直前に 2 つのフィールド (整数の位置と文字列の weburl) を持つテーブル webs が空であることがわかります。ただし、フェッチ後:

1 つの要素があります。

arrwebs は空であってはいけませんか? この前に要素を削除しました(プログラムおよびSQLエディターを介して)。

コードは次のとおりです。

何か案が?

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

ios - 複数の ManagedObjectContext

私の managedObjectModelには、いくつかのエンティティがあります。それぞれにManagedObjectContextを作成することは可能だと思います...それが本当なら私は知りたいです:

  1. ManagedObjectContext ごとに(NSManagedObjectModel *)managedObjectModelメソッドが必要ですか?

  2. ManagedObjectContext ごとに(void)saveContextメソッドが必要ですか?

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

ios - ManagedObjectContext キャンセル ロールバックが挿入されたデータを完全に削除しない

同様のスレッドで多くの回答を見てきましたが、彼らの推奨事項に従った後も、まだ奇妙な問題があり、頭を壁にぶつけています。

人のテーブルがあり、ユーザーがフォームに記入して別のユーザーのエントリを追加するオプションがあります。そのコンストラクターを次に示します。

...等。

そして、ユーザーが戻るボタンをクリックすると、次のように呼び出します。

親テーブル ビュー コントローラーに移動すると、以下のコードでデータがリロードされ、予想どおり、オブジェクトはなくなります。

ただし、タブから離れてクリックしてtableView戻ると、同じコードが再度実行され、管理オブジェクトコンテキストでキャンセルされたオブジェクトが見つかります。

しかし、アプリを再実行すると、どこにも見つかりません。

別の新しい人物を作成してバックアウトしようとすると、最初は正しい数のエントリが表示され (キャンセルされたオブジェクトはありません)、別のタブをクリックして戻ると、最近キャンセルされたオブジェクトだけが表示されます。そこにあるべきもの。

FamilyMemberInfoViewController: [context reset][context rollback]、などのマネージド オブジェクト コンテキストをクリアするあらゆる方法を試しました。実験的に配列を 2 回読み込んでみましたが[context deleteObject:]、[戻る] ボタンをクリックしても正しい数のオブジェクトが見つかりますが、別のタブをクリックしてから戻ると、余分なオブジェクトが表示されます(そこに行って戻っても引き続き表示されます)。[context processPendingChanges]familyMembers

何か案は?