問題タブ [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 投票する
1 に答える
347 参照

iphone - NSManagedObjectContextの問題

「usecoredata」オプションを設定してプロジェクトを設定しました。

XCodeは明らかにこれらすべてを自動的に設定し、アプリデリゲートヘッダーファイルに次の行があります。

私の最初の質問は、管理対象オブジェクトなどの最初のポインターにアンダースコアが付いているのはなぜですか?これは、.mファイルでの使用方法ですが、@propertysにはアンダースコアがありません。

次の質問は、スクリプトでコンテキストをさらに使用したいので、次の行を使用しました。

obvsには@synthesizeがないため、これは機能しません。しかし、何を合成する必要がありますか?アンダースコア付きで合成しますか、それともなしで合成しますか?delegate.managedObjectContextまたはdelegate.managedObjectContext_?またはまったくない?Ha..この管理対象オブジェクトのすべてを理解しているのかよくわかりません。

どうもありがとう。トム

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

iphone - このコードでデリゲートからコンテキストを取得できないのはなぜですか?

次のコードから、厄介なあいまいなエラーが発生します。

contextNSManagedObjectContextは.h ファイルでとして定義されており、デリゲートでも同じです。すべての適切なファイルが含まれているようです ( <CoreData/CoreData.h>.m ファイルを除く - ただし、プログラムは含まれているかどうかに関係なく同じ問題をスローします。ヘッダー ファイルに含まれています。)

すべての正しいフレームワークとものが含まれています。プロジェクトを開始したときに、「コアデータを使用してデータを管理する」などを選択しました。それで問題ないはずですよね?

私がやろうとしていることを行うためのより良い方法はありますか? 基本的に、最終的にそれを使用するまで、さまざまなクラスを介してコンテキストを渡し続ける必要はありません(データの保存は、アプリケーションの非常に小さな部分です)。

コンソールに表示されるエラーは次のとおりです。

次の行をコメントアウトするcontext = [delegate managedObjectContext];と、すべて正常に動作するように見えます。(現時点では、コアデータなどを実際に使用していないため、それに関連するコードはこれ以上ありません。

これについて助けたり、洞察を提供したりできる人に感謝します-それはとても複雑です。

編集:私のアプリデリゲートファイルメソッド:

もう一度編集:

エラーのある行です。これがどのタイプのファイルかはわかりませんが、明らかに見つからないか何かだと思います... :/私がすべきことはありますか?

@kiamlaluno - 編集をロールバックして申し訳ありませんが、意図したものではありませんでした。変更した内容を知りたいだけで、それが私に表示されると思いました...しかし、明らかにそれらを完全に削除しました。笑。

ビルド結果を編集します。

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

iphone - NSManagedObjectContextをどのように作成しますか

iPhoneのコアデータでは、データをに保存しようとすると、あらゆる種類のエラーが発生していましたNSManagedObjectContext

私の問題はすべてNSManagedObjectContext、複数のスレッドで使用されていたを使用することと関係があると思います。

だから私は新しいものを作成してそれを試してみたかったNSManagedObjectContextのですが、単に新しいインスタンスを作成するためのサンプルコードが見つかりません...

私はその単純さを知っていますが、ここで助けていただければ幸いです。

注:私はAppleのドキュメントでこの記事を見ました:http://developer.apple.com/iphone/library/documentation/cocoa/conceptual/CoreDataUtilityTutorial/Articles/05_createStack.html

しかし、これは、iPhoneでサポートされていないXMLStoreなど、私がよく知らないコードを使用しています。

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

iphone - 奇妙なCoreDataの問題とさらに奇妙な解決策. 理由はありますか?

私はかなり快適な CoreData ユーザーです。私は絶対に私を殺していた問題を抱えていました. 誰でもこれを説明できますか?

さて、ほとんどの「読み取り専用」データ作業を行い、単純な書き込み操作を処理するメイン MOC があります。大規模な書き込み/インポート/その他を実行しようとしているときは、バックグラウンド MOC を新しいスレッドに割り当て、重い作業をすべて実行してから保存します。保存すると、NSManagedObjectContextWillSaveNotification が起動し、次に mergeChangesFromContextDidSaveNotification: が発生し、メイン MOC のすべてに変更が反映されます。かなり標準的。

そのため、数日前に NSManagedObject サブクラスの 1 つで変更が行われました。変更は、setValue:forKey: での呼び出しでした。そのメソッドで特別な処理が行われていない場合、最初は [super setValue: forKey:] を呼び出していました。[self setPrimitationValue: forKey:] に変更されて...

保存後、mergeChangesFromContextDidSaveNotification: が呼び出されますが、メイン MOC は変更を反映しません。だから、それは少し奇妙です。ただし、アプリケーションを閉じてから再度開くと、魔法のように変更が存在します。何!?!

変更を保存する永続ストアに問題があることはわかっていますが、他のMOCには問題がありません。その後、新しい MOC が作成されて新しいローンチになると、すべてが再びシンクになります。なんで?

このトピックに関するすべての光は、たくさんの助けになります。

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

iphone - リレーションシップを介してmanagedObjectContextにリンクされたエンティティからコアデータ行を編集する

fetchedResultsControllerからメインエンティティと関係があるエンティティのデータ行を編集する必要があります。この場合、「theUser」はユーザーエンティティのインスタンスです。

基本的に、既存のCannedMessage行の1つを編集して、保存する必要があります。以下に示すように、「メッセージ」に正常にアクセスできますが、「theUser」のmanagedObjectContextにどのように保存するかについて、必要なCannedMessageを見つけたらわかりません。

何かアドバイス?

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

iphone - 可変配列へのデータのコピーに問題がある

このコード行から、「キャッチされない例外'NSInvalidArgumentException'、理由:'+ [MainViewController minimumFormInContext:]:認識されないセレクターがクラスに送信されました」というエラーが発生し続けます:NSLog(@ "特定の鉱山エンティティにアクセスしています");

デバッガーを使用して、次の場所で発生するエラーを絞り込みました。

これを修正するにはどうすればよいですか?

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

iphone - fetchresultscontrollerの問題または管理対象オブジェクトのコンテキスト?

参照投稿:

コア データ - 基本的な質問

このコードからマネージド オブジェクト コンテキストを取得できます。それは私に別の質問をもたらします。2 つのビュー コントローラーと 1 つの NSObject があります。

  1. ユーザールックアップ (VC)
  2. ユーザールックアップ設定(VC)
  3. FetchProcessor (NSObject)

順番に、Userlookup VC が最初に読み込まれ、Userlookupsettings VC + テキストボックスと UiButton を読み込むボタンがあります。アプリが読み込まれ、SETTINGS uibutton を押すと、問題なく動作します...ただし、検索 (FetchProcessor) を実行してから設定を読み込むと、エラーが発生します (以下を確認してください)。



エラー:



編集され、関連するコードが追加されました..

ユーザールックアップ:


NOW @implementation GetUserDetailsS​​OAPService


NOW @interface TCodeSettings : NSObject


NOW @interface UserLookupSettings : UITableViewController


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

iphone - この一般的なアプリケーションパターンの効果的なCoreDataコンテキスト/コーディネーター戦略は何ですか?

私には一般的なアプリケーションパターンがあります。ユーザーはメインのViewControllerにデータを入力し、それをモーダルViewControllerのテーブルに表示します。ここで行を削除または変更できます。私はスタンフォードiPhoneコースの一般的な設計戦略に従っていましたが、どこかで問題が発生し、SIGABRTと、「異なるコンテキストのオブジェクト間に「xyz」の関係を確立しようとする違法な試み」などの例外が発生しました。

スタンフォードコースと同様に、「データベース」と呼ばれるシングルトンクラスを使用します。このクラスは、要求されるたびに同じコンテキストを返す必要があります。したがって、メインViewControllerのviewDidLoadメソッドの最初のコマンドは次のとおりです。

nmocontextは、ViewController全体で使用するivarです。ユーザーがテーブルを使用して他のViewControllerを表示したい場合は、それをalloc-initしてから、モーダルで表示します。(ストアからのデータを提供するNSFetchedResultsControllerがあります。)ここでさまざまな戦略を試しました。

  • NSFetchedResultsControllerをメインビューコントローラーによって設定された保持プロパティにしました
  • NSManagedObjectContextを、メインビューコントローラーによって設定された保持プロパティにしました。と
  • テーブルビューコントローラーのviewDidLoadメソッドの先頭で上記の2行のコードを繰り返すことにより、内部でシングルトンを使用しました。

どちらを使用しても、解決できない問題の1つは、ユーザーがテーブルビューコントローラー(およびそのNSFetchedResultsController)を閉じてロックを解除した後、ストアにアクセスしたときにメインビューコントローラーでクラッシュが発生し始めることです(「上記の「不正な試行」エラー)。

この一般的なアプリケーションパターンに対処するためのベストプラクティスは何ですか?このアプリケーションをiPhoneSDK3.xと互換性を持たせたいと思っていますが、iOS 4を使用していると、クラッシュが少なくなるようです。3.xに根本的な問題があり、問題が発生している場合は、私に知らせてください。知っているし、私はiOS4のみをターゲットにするかもしれない。

ありがとうございました!

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

iphone - 同じ管理対象オブジェクト(テーブル)のNSFetchedResultsController

これができるか知りたい

ビュー1:TABLEAでNSFe​​tchedResultsControllerを使用してデータを取得し、テーブルビューに表示して、データを保存するためのアクションを実行します

次に、VIEW 2で、同じテーブル、つまりTABLEAでNSFe​​tchedResultsControllerを使用して、テーブルビューなしでデータを取得し、VIEW 1に戻って、以前の管理対象オブジェクトを保存しますか?

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

iphone - iPhone: NSManagedObjectContext オブジェクト間でオブジェクトを転送しますか?

現在、テーブル ビューに表示される 5 つのビデオ オブジェクトを含む NSManagedObjectContext があります。

ユーザーが行を選択すると、新しいビュー コントローラーをプッシュしてオブジェクトの詳細を表示し、ユーザーに「ビデオをお気に入りに追加する」オプションを提供します。

これを行うには、新しい NSManagedObjectContext を作成し、選択したビデオをそれに割り当てて、新しいビュー コントローラーにプッシュします。

誰かが私がこれを行う方法を説明できますか?

私の既存のコードは次のようになります。