問題タブ [nsmanagedobjectcontext]

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

iphone - NSManagedObjectContext 宣言時のエラー

NSManagedObjectContext オブジェクトを作成しようとしています。エラーは次のようになります。

「NSManagedObjectContext」の前に指定子修飾子リストが必要です

ここに私のヘッダーファイルがあります:

私がここで行方不明になるかもしれないことを知っている人はいますか?

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

iphone - CoreDataのルールが正しく機能しないことを拒否する

これは私のオブジェクトモデルです:

クライアントには多くのプロジェクトを含めることができます(オプション)が、プロジェクトには1つのクライアントのみを含める必要があります(必須)。MemoEntryにはプロジェクトを1つだけ含めることができ(オプション)、同じプロジェクトに異なるMemoEntryを含めることができます(オプション)。

オブジェクトモデル

削除時:

  • Client.projectsには拒否ルールがあります
  • Project.clientには無効化ルールがあります
  • Project.memosには拒否ルールがあります
  • MemoEntry.projectには無効化ルールがあります

それぞれのTableViewController内のクライアント、プロジェクト、またはMemoEntryの削除時に呼び出されるコード:

太字の問題:

IFプロジェクトを作成してからその親クライアントを削除すると、コードはステートメントの後に正しく続きます。「削除された」クライアントにアクセスしても、それはまだそこにあり、編集clientNameやその他のプロパティを使用して、すべて正常に保存できます。プロジェクトに移動してプロジェクトを開き、更新されたクライアントを確認できますclientNameしかし、プロジェクトを介してクライアントにアクセスすると、アプリが終了します。

削除ルールが正しく設定されていませんか?[context save:&error]エラーが発生した場合でも、呼び出すと削除が保存されますか?何かご意見は?

* edit-ブレークポイントエラーが停止する行:

スローされたエラー:

0 投票する
5 に答える
3689 参照

iphone - managedObjectContext の保存が null のエラーで失敗する

エラーがnullに戻る原因は何ですか、これは私が持っているものです

上記のメソッドはクラス メソッドです。エラーに情報がない理由がわかりません。

このメソッドは次のように呼び出されます

[HSCoreDataUtility saveContext:self.managedObjectContext];

modalViewControllerが閉じてNavigationControllerに戻るとき、コンテキストを保存する必要がありますが、エラーが発生しました。保存されていない原因については考えていると思いますが、エラーが発生するべきではありません私に手がかり?しかし、ログには「エラー(ヌル)、(ヌル)」とだけ表示されます

何かご意見は

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

iphone - コア データ: 以前に保存したオブジェクトを使用できません

私は本当にこの2つのことで立ち往生しています。

私がやろうとしていること:

  1. 私のエンティティは単純です。それは「記録」です。
  2. 「名前(NSString)」と「親(relationShip)」があります
  3. 「親」はそれ自体、エンティティ「レコード」に接続します。

さて、「parentRecord」と「simpleRecord」を作成したいと思います。

私はそのコードでやろうとしています:

それは「parentRecord」です。将来の使用のために保存し、「groupRecord」変数でキャッチします。

次に、「simpleRecord」を作成する必要があります。これはコードです:

このコードを整理したので、「parentRecord」では*は行いません。[self saveContext];variable から使用するだけですgroupRecord。そして、「childRecord」ブロックに保存します。その後、すべて問題ありません。レコードはストレージに保存され、そこから読み取ることができます。

なぜそれが起こるのですか?最初に「parentRecord」を作成し、それを保存してから「childRecord」を作成したい場合はどうすればよいですか?

以前に保存したオブジェクトを使用できないのはなぜですか? NSManagedObjectContext は同じです - 何が問題なのですか?

私は「古典的な」SQL で十分ですが、Core Data は私の脳を殺しつつあります。

みんなありがとう。


アップデート:

見てください、saveContext はクラッシュする理由がありません。ここは:

  1. 親エンティティを作成します。
  2. appDelegate の変数に設定します。
  3. コンテキストを保存します (親の場合)。
  4. childEntity を作成します。
  5. appDelegate の変数からparentPropertyを設定します。アプリがクラッシュします!

と:

  1. 親エンティティを作成します。
  2. appDelegate の変数に設定します。
  3. ///////////コンテキストを保存します (親用)。
  4. childEntity を作成します。
  5. appDelegate の変数からparentPropertyを設定します。クラッシュはありません。
  6. 今回はコンテキストを保存します。
  7. 今は大丈夫です。

親プロパティ - プロパティの名前です。MOM ファイルの親の追加設定ではありません。

階層を持つエンティティを実行したい。Xcodeが私のために作成する追加のメソッドはありません-単なるプロパティです。

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

iphone - CoreData アプリで Shake-to-undo が機能するが、元に戻す/やり直しのプロンプトが表示されない

シェイクして元に戻す機能をサポートする CoreData ベースのアプリケーションがあります。これは現在正常に動作していますが、デバイスを振ると、NSUndoManager が通常無料で提供する通常の元に戻すプロンプトを最初に表示せずに、すぐに元に戻すことができます。

「元に戻すアーキテクチャ」ドキュメントから「iPhone での元に戻す」を読みました。

  • 実装canBecomeFirstResponder、復帰YES
  • ビューコントローラーbecomeFirstResponderを作るviewDidAppear
  • ビューコントローラーresignFirstResponderを作るviewDidDisappear
  • self.undoManagerビューコントローラーで読み取り/書き込みとして再宣言する
  • NSUndoManagerメソッドでand 設定self.undoManagerを作成しますUIViewController init(これが呼び出されることを確認しました)。
  • のセッターで に設定しself.managedObjectModel.managedObjectContext.undoManagerます。繰り返しますが、これが呼び出されていることを確認しました。これをしないと、元に戻す操作がまったく機能しません。self.undoManagermanagedObjectModel

私がすでに試したトラブルシューティング:

  • 元に戻すチェックは実際に機能します(管理対象オブジェクトモデルへの変更が元に戻されていることがわかります)
  • 検証canBecomeFirstResponderが呼び出されています
  • 元に戻す操作中にアクセサself.undoManagerが呼び出されているかどうかを確認します(そうではありません)。

だから私の質問は:

  • 元に戻すは機能するが、元に戻すプロンプトが表示されないのはどのような状況ですか?
  • これをトラブルシューティングするために、次に何を試しますか?
0 投票する
1 に答える
6190 参照

ios - iPhone & Core Data - NSManagedObject を削除しますか?

管理オブジェクト コンテキストを削除しようとしていますが、オブジェクト自体を削除する代わりに、すべてのインスタント変数を null に設定します。NSManagedObjectContext のインスタンスを削除しているときに何か問題がありますか?

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

core-data - 'NSInternalInconsistencyException'、理由: '+entityForName: エンティティ名の NSManagedObjectModel が見つかりませんでした

タブバーとナビゲーションバーが統合されたウィンドウベースのアプリケーションがあります。ナビゲーション バーには、テーブル ビューを開くカスタム ボタンがあります。

テーブルのセルをクリックすると、新しいテーブル ビュー コントローラーが開きます。しかし、最初のテーブルのセルをクリックするとすぐに例外が発生します

正しい位置にあることを確認しAddFormました。

上記および他のスレッドで提供されたすべての解決策を試しましたが、まだ行き詰まっています。誰かが私を助けてくれることを願っています。

流れはこんな感じ

ListButton (クリックするとリスト ビューが開きます) -> テーブル ビューが開きます -> (セルをクリックすると、新しいテーブル ビュー コントローラーが開き、コア データからデータをフェッチする必要があります)

私のルートView Controllerコードは2番目のTable View Controllerファイルにあります...それは私が間違っていることですか? その前にコアデータが必要ないのでそうしています....

助けてください

前もって感謝します

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

iphone - NSManagedObjectContexts とマルチスレッド

場所のリストを表示する必要があり、3 つのスレッドで実行されるアプリがあるとします。

  1. メインスレッド
  2. Main Thread Background Sync (場所をサーバーと同期するため)
  3. ジオコーディング スレッド (バックグラウンドで場所をジオコーディングするため)

私が専用にした3つのスレッドすべてでNSManagedObjectContexts(MOC)。各 MOC が基礎となるデータを変更できる場合 (たとえば、メイン スレッドは場所をお気に入りに追加でき、バックグラウンド同期は場所の名前を変更でき、ジオコーディング スレッドは緯度/経度情報を追加できます)、アプリはNSManagedObjectContextDidSaveNotificationそれぞれに登録する必要があります。スレッドをmergeChangesFromContextDidSaveNotification作成し、1 つの MOC が保存された場合 (メイン スレッドの MOC にマージするだけでなく)、他のスレッド内の対応する他の MOC に展開します。

今、私はそれをやっていますが、それは正しくないと感じています:(

現在実行中のスレッドを MOC とともに保存するために使用する辞書があります。MOC の 1 つがポップするたびに、NSManagedObjectContextDidSaveNotificationこの配列を I ループし、mergeChangesFromContextDidSaveNotification他のすべての MOC/スレッドに送信します。もちろん、NSThreadWillExitNotificationスレッドの 1 つがなくなったときに配列から Thread/MOC を削除できるように、オブザーバーも追加しました。ディクショナリのすべての追加/削除アクションはロックされています。そして、それが私が今ちょっと立ち往生しているところです。たまに電話すると

MOC/スレッド ディクショナリをループすると、次の例外がスローされます。

どうやら、これは競合状態が原因です。ディクショナリをループしている間 (オブジェクト配列の抽出中にロックしただけです)、スレッド内の 1 つが終了するため、参照が無効になります。ただし、ループ全体の前に辞書ロックを配置すると、デッドロックが発生します。

場合によってはループ内で永遠に時間がかかるため(理由はまだわかりません)、アプリ全体が停止します。waitUntilDone:NOこの場合、呼び出しを行うのは安全ですか? それで治りそうだから。これでパンドラの箱を誤って開けてしまったら…。

よろしく、

セバスチャン

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

delegates - プロトコルに見つからない「-managedObjectContext」を取り除くにはどうすればよいですか

私のアプリはiPhoneデバイスとシミュレーターで実行されます。すべて問題ないようですが、ビルド中にコンパイラの警告が表示されます。完全に正しくないコードを提供するのは嫌いなので、この警告を取り除く必要があります。コンパイラの警告は次のとおりです。

newsReaderController.m:24: 警告: '-managedObjectContext' がプロトコルに見つかりません

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

CoreData 操作の managedObjectContext は、App Delegate で設定されます。Core Data Framework は importet であり、アプリは魅力的に機能します。

私へのヒントはありますか?私は数週間客観的 C で作業していますが、毎日何か新しいことを学ぶようです :)

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

iphone - Objective-Cでエンティティを動的に作成するにはどうすればよいですか?

ユーザーがエンティティを動的に作成する必要があるiPadアプリケーションを構築しています。私はすでにプログラムが使用する3つのエンティティを持っています。
それを行う方法のコードを手伝ってもらえますか?

新しいmanagedObjectModelを作成し、新しいエンティティを追加し、それを既存のエンティティとマージする必要があるという私の理解に従って、構造全体を理解したいのですが、それは正しいですか?