問題タブ [nsmanagedobject]
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.
iphone - このコードでデリゲートからコンテキストを取得できないのはなぜですか?
次のコードから、厄介なあいまいなエラーが発生します。
context
NSManagedObjectContext
は.h ファイルでとして定義されており、デリゲートでも同じです。すべての適切なファイルが含まれているようです ( <CoreData/CoreData.h>
.m ファイルを除く - ただし、プログラムは含まれているかどうかに関係なく同じ問題をスローします。ヘッダー ファイルに含まれています。)
すべての正しいフレームワークとものが含まれています。プロジェクトを開始したときに、「コアデータを使用してデータを管理する」などを選択しました。それで問題ないはずですよね?
私がやろうとしていることを行うためのより良い方法はありますか? 基本的に、最終的にそれを使用するまで、さまざまなクラスを介してコンテキストを渡し続ける必要はありません(データの保存は、アプリケーションの非常に小さな部分です)。
コンソールに表示されるエラーは次のとおりです。
次の行をコメントアウトするcontext = [delegate managedObjectContext];
と、すべて正常に動作するように見えます。(現時点では、コアデータなどを実際に使用していないため、それに関連するコードはこれ以上ありません。
これについて助けたり、洞察を提供したりできる人に感謝します-それはとても複雑です。
編集:私のアプリデリゲートファイルメソッド:
もう一度編集:
エラーのある行です。これがどのタイプのファイルかはわかりませんが、明らかに見つからないか何かだと思います... :/私がすべきことはありますか?
@kiamlaluno - 編集をロールバックして申し訳ありませんが、意図したものではありませんでした。変更した内容を知りたいだけで、それが私に表示されると思いました...しかし、明らかにそれらを完全に削除しました。笑。
ビルド結果を編集します。
objective-c - NSFetchedResultsController と NSManagedObjectIDResultType がクラッシュする
私は現在、コアデータで大量のデータを取得するiPadアプリに取り組んでいます。メモリ プロファイルを低く保つために、リクエストの resultType を NSManagedObjectIDResultType に設定し、実際のデータが必要なときはいつでも -objectWithID: Method でオブジェクトを取得しています。
すべてが期待どおりに機能します。問題は、テーブルビューから(コンテキストから)オブジェクトを追加/削除する場合です。これは、tableView:commitEditingStyle:forRowAtIndexPath: で呼び出すコードの一部です。
それは私に例外をスローします: " * キャッチされていない例外 'NSInvalidArgumentException' によるアプリの終了、理由: '* -[_NSObjectID_48_0 objectID]: 認識されないセレクターがインスタンス 0x5e56900 に送信されました'"
痕跡:
これは、NSFetchedResultsController と NSManagedObjectIDs の問題だと思います。デリゲートを nil に設定すると、クラッシュしません (空のデリゲート メソッドでもクラッシュします)。
何か案が?NSFetchedResultsController を取り除き、NSManagedObjectContext 通知を観察して手動で更新を行うのは良い考えでしょうか?
iphone - コア データ: NSManagedObject に値 "forKey" を追加 - NSNumber が切り捨てられます。別?
NSNumber が 1/10 の位を超えることはできないことを理解しています。倍精度 (経度/緯度) を Core Data に追加する代わりに何を使用できますか? double を直接使用しても機能せず、NSNumber は値を切り捨てます。
iphone - 事前入力された SQL データベースをコア データ SQL データベースに保存できません: managedObjectModel が見つかりません
私のプログラムは、事前に入力された SQL データベースを取得し、レコードをアプリのデータベースに保存する必要があります。残念ながら、何らかの理由で、アプリケーション デリゲートの次のメソッドでアプリケーションが終了します。
アプリケーションが有効な managedObjectModel_ を見つけられないか、存在しないか、作成していないように見えます。どうすればこれを解決できますか?
コンソールに表示されるエラー メッセージの 1 つは次のとおりです。
この一部を NSManagedObject に絞り込みました。作成または検出されたものはないようです。
役立つその他の情報: 他の多くのコアデータ チュートリアルで説明されているように、エンティティを追加し、属性を定義しました。エンティティを定義するクラスは次のとおりです。
core-data - NSManagedObject の文字列属性の長さの NSPredicate
「文字」属性の長さが特定の範囲内にある NSManagedObject のみを返す述語を定義するのを手伝ってくれませんか?
ここに私が試してきた例があります、私はそれが letters.length 表記であると感じています.kvc letters.@length も試しましたが成功しませんでした..何が間違っていますか?
cocoa - NSManagedObject と KVO とドキュメントの比較
私はカスタムNSManagedObject
サブクラスを持っていPerson
ます. また、 のさまざまなプロパティを観察するために をUIView
登録しました。その中には、「名前」のように永続的なものもあれば、「飲酒」のように、コア データとは関係のない単なる KVO 準拠のアクセサーもあります。-addObserver:forKeyPath:options:context:
Person
すべてが機能します。-getDrunk
プロパティを送信または設定するたびにname
、ビューに通知されます。NSManagedObject
次のようなドキュメントを読むときを除いて、私は幸せな男です。
事実 1. 受信者がキーのキー値監視変更通知の自動サポートを提供する場合は YES、そうでない場合は NO。
事実 2. NSManagedObject のデフォルトの実装は、モデル化されたプロパティに対して NO を返し、モデル化されていないプロパティに対して YES を返します。
今、私は上記の 2 つの事実をドキュメントから解析しようと懸命に努力しています。事実 2 を確認するのは簡単で、クラス Person は実際に @"name" に対して NO を返し、@"drinking" に対して YES を返します。では、名前が変更されたときに、ビューはどのように通知されるのでしょうか? KVOのドキュメントは明確に言っています、
自動オブザーバー通知を使用すると、キー値コーディングおよびキー値コーディング準拠のメソッドを介してプロパティを変更するときに、 willChangeValueForKey: および didChangeValueForKey: の呼び出しでプロパティへの変更を括弧で囲む必要はありません。
そのため、Person が @"name" に対して NO を返した場合、KVO が機能する+automaticallyNotifiesObserversForKey:
ようにネーム セッターを手動でラップする必要があるように思われます。will/didChangeValueForKey:
ただし、KVO は問題なく動作します。私は何が欠けていますか?標準の KVO 動作を変更していないように見える場合、それNSManagedObject
を上書きして文書化することのポイントは何ですか?+automaticallyNotifiesObserversForKey:
正気を取り戻すのを手伝ってください。
objective-c - NSFetchedResultsControllerは、カスタムではなく常にNSManagedObjectオブジェクトを返します
私はCoreDataを使用しており、エンティティContactListを定義しています。これは、XCode xcdatamodelツール(または、組み込みのものと呼んでいるもの)を使用して作成しました。また、エンティティのクラス名を「ContactList」に設定しました。次に、rentzschのmogenerator(http://github.com/rentzsch/mogenerator)を使用してカスタムクラスファイルを生成し、ContactListクラスに単純なメソッド「toString」を追加しました。
fetchedResultsControllerコールバックはほぼ標準であり、次のようになります。
ここで、アプリケーションを起動し、「ContactList」オブジェクトでそのメソッドを呼び出そうとすると、NSFetchedResultsControllerから取得します。
メッセージが示すように、どういうわけかNSFetchedResultsControllerは「ContactList」オブジェクトを返しませんが、代わりにより一般的なNSManagedObjectを返します。
誰かがこれを解決する理由と方法を知っていますか?
iphone - 新しい NSManagedObject オブジェクトの取得について
私は Core Data ガイドを見ていますが、新しい NSManagedObject インスタンスを取得するには 2 つの方法があります。
- - initWithEntity:insertIntoManagedObjectContext: NSManagedObject クラスの
- + insertnewObjectForEntityForName:inManagedObjectContext: NSEntityDescription クラスの
両方の方法に違いはありますか?または、どのような条件下でも新しい NSManagedObject を取得するために同じことを意味します。
iphone - 複数のテーブルを使用した iPhone Core データのドリルダウン
私が取り組んでいるアプリには、関係 (多対多) によってリンクされた 2 つのエンティティがあります。現在、rootviewcontroller が最初のエンティティで NSManagedObject (データの取得、設定、削除) を制御するようにアプリをセットアップしています。最初のエンティティにドリルダウンすると、テーブルもある 2 番目のビュー (secondviewcontroller) に移動します。このView ControllerにNSManagedObjectを追加すると、エラーが発生しました。これは、2つのNSManagedObjectがあるためと考えられます。次に、rootviewcontroller の NSManagedObject を参照することにしました。これにより、2 番目のビューでエンティティを取得して表示できますが、最初のビューを参照しているため、2 番目ではなく最初のエンティティが返されます。
エンティティ 1 とエンティティ 2 のデータにそれぞれアクセスする 2 つのビューに 2 つのテーブルを作成するにはどうすればよいですか。補足として、NSPredicate でテーブル 1 の行をクリックした結果をフィルタリングして、クリックされたエンティティ 1 に関連するエンティティ 2 のみを表示するにはどうすればよいですか。
大量の説明で申し訳ありませんが、(私にとっては) 複雑であり、3 日以上にわたってこれを行っており、グーグル、本、ブログなどで必要な詳細が説明されていないため、理解する必要があります。明らかな何かが欠けているに違いありません!
概要:
エンティティ 1: 名前の関係 1
エンティティ 2: 名前の関係 1;
rootviewcontroller: NSManagedObject テーブルにエンティティ 1 が入力されています
secondviewcontroller: クリックされたエンティティ 1 に関連するエンティティ 2 を入力する必要があるテーブルがあります
現在、secondviewcontroller にある rootviewcontroller のインスタンスは、2 ではなくエンティティ 1 のリストを返します。
よろしくお願いします:)これまでに行ったことのコードを投稿する必要があることはわかっていますが、私が書いたものを見る限り、根本から間違っているに違いありません!
core-data - コア データで NSManagedObject のディープ コピーを作成する方法
Core Data 内の既存の NSManagedObject および関連するサブオブジェクトの複製を作成しようとしています。これを行う簡単な方法が見つからないようです。
Core Data データベースから取り込まれた NSArrayController があります。selectionIndex でオブジェクトを取得し、ディープ コピーを作成して、同じ親オブジェクトに関連させ、すべての子オブジェクトをコピーしたいと考えています。
どんな支援も大歓迎です!
リンクを提供してくれた TechZen に感謝します。そのサイトのサンプル コードを使用し、次の呼び出しコードを使用しました。