問題タブ [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 - 詳細ビューからコア データ エントリを削除するにはどうすればよいですか?
Apple のコア データ レシピのサンプル コードに似たアプリを使用しています。アップルの連絡先アプリのように、詳細ビューからエントリを削除できるようにしたい。
以下のコードは、選択したエントリではなく、最初のエントリを削除しています。私が間違っているのかわかりません。
iphone - NSManagedObject からディスク上のファイルを参照する
NSManagedObject に関連付けられたファイルに名前を付ける最良の方法は何でしょうか。NSManagedObject は、このファイルへの URL を保持します。
しかし、自分のファイルに一意のファイル名を作成する必要があります。使用できる自動インクリメント ID はありますか? mktemp (一時ファイルではありません) を使用するか、NSManagedObjectId をファイル名に変換する必要がありますか? しかし、問題を引き起こす可能性のある特殊文字があるのではないかと心配しています。
何を提案しますか?
編集:これらの NSManagedObjects がたくさんあり、それぞれに独自のイメージがあるため、各画像に一意の名前を生成したいと考えています。
objective-c - ミステリー キー 値 コーディング キー
文書化されていない API (OsiriX) からデータを読み込もうとしています。
次のように NSManagedObject を取得します。
NSManagedObject *itemStudy = [[BrowserController databaseOutline] itemAtRow: [[BrowserController databaseOutline] selectedRow]];
うまく動作します。
しかし、次のように NSManagedObject を取得します。
seriesArray = [_context executeFetchRequest:request error:&error];
NSManagedObject *itemSeries = [seriesArray objectAtIndex:0];
呼び出すとエラーが発生します[itemSeries valueForKey:@"type"]
2010-05-27 11:04:48.178 rcOsirix[27712:7b03] Exception: [<NSManagedObject 0xd30fd0> valueForUndefinedKey:]: the entity Series is not key value coding-compliant for the key "type".
これは私を完全に混乱させます。itemSeries の KVC 値を出力すると、次のリストが表示されます。
itemStudy の KVC は次のとおりです。
コードを使用する場合:
KVCがないため、必要なときitemStudy
に呼び出してもエラーはスローされません!!! [itemStudy valueForKey:@"type"]
@"type"
確かに、オブジェクトは異なりますが、どちらもキー@"type"
を含んでおらず、どちらもエラーをスローするはずですが、Osirix コードは両方の条件をテストします。
エラーは発生しません。しかし、NSManagedObject
まったく同じモデルとエンティティをロードすると、@"Series"
上記の条件に渡されたときに「キー値なし」がスローされます。
何か不足していますか?itemSeries と itemStudy のsuperentity
andsubentities
は、nil
KVC を持つものから継承しないようにするためです@"type"
。
何が起こっているのかを説明するのに完全に途方に暮れています。
- - 編集 - -
何が起こっているのか誰も説明できないことはわかっています...しかし、どこから調べ始めればよいのでしょうか? itemStudy は、そのプロパティ リストに表示されない余分な KVC @"type" をどのように持つのでしょうか?
ご協力いただきありがとうございます、
-スティーブン
- - 編集 - -
わかりましたので、さらに掘り下げた後、これは私の側の CoreData の誤解だと思います。
API には、NSManagedObject のサブクラスであり、xcdatamodel ファイルに含まれているクラスDicomSeries
とクラスが含まれています。DicomStudy
「コンパイル済みソース」として xcdatamodel ファイルと DicomSeries.h および DicomStudy.h を含めています。
DicomSeries
次のようにDicomStudy
「ハードコード」されています。
itemStudy
しかし、 Never用に作成したオブジェクトは、このメソッドを呼び出しません。上記のようにオブジェクトを作成itemStudy
します。DicomSeries
メインプログラム内で呼び出されるオブジェクトでさえそうです。しかし、同じデータベースからのフェッチ要求で作成したものではありません。
私がしても:
@"Series"
リクエストに Class のエンティティがある場合、次のDicomSeries
ように応答する必要があります。
しかし、そうではありません。
私が見逃している CoreData には大きなギャップがあるように感じます。私NSManagedObjectModel
は永続的なストア コーディネーターで使用しており、コンテキストにはエンティティがSeries
あり、managedObjectClassName
DicomSeries
それは...
うん。
笑、えっ?
c++ - NSFetchRequest のクラスが間違っているのはなぜですか?
私は文書化されていない API (Osirix) を使用しており、ここに投稿した質問の姉妹の質問があります。
管理対象オブジェクト コンテキストからのオブジェクトの読み込みに問題があります。
_context と _model のインスタンスを使用して、API から読み込みます
Fetch Request (および _context と _model の独自のインスタンス) からの読み込み
出力:
したがって、エンティティが DicomSeries であると考えていても、そうではないことは明らかです。それは単なる NSManagedObject です。DicomSeriesには、他の質問で問題に遭遇した「ハードコードされた」KVCのものがあります。
私はこのスレッドで別の推論を追求しています - オブジェクトの読み込みです。
以下は彼らのコードです:
これは私のコードです:
私はすべて同じフレームワークを含めています....しかし、_allBundles
の作成にも使用されていないため、ロード中にそれらを見ることができるようにmanagedObjectModel
、それらをメモリにロードする以外に何をすべきかわかりませんmom
。
完全に失われました。
ヘルプ!
NSManagedObjects
同じ Entity を持つ FetchRequest によって返されたオブジェクトが sではなくDicomStudy
sとして出てくるのはなぜですか? モデル、コンテキスト、およびフェッチ要求の作成中にオブジェクトが表示されるように、DicomStudy.h を含めています。
前もって感謝します、
-スティーブン
objective-c - 別のオブジェクトにNSManagedObjectを与える
了解しました。コードに問題が発生しています。私が行ったことは、サブクラス化されたUIButtonであるため、コードに関連する情報をさらに提供できます。私はボタンを作成することができました、そしてそれらは素晴らしい働きをします。カピシェ。
ただし、サブクラスに保持させたいものの1つは、NSMangedObjectへの参照です。ヘッダーファイルに次のコードがあります。
ご覧のとおり、保持したいNSMangedobject(およびContext)へのインスタンス変数があります。しかし、私の一生の間、そのNSManagedObjectを保持することはできません。実装ファイルで両方の@synthesizeメソッドを実行します。
だから私は何が間違っているのかわかりません。これが私のボタンの作成方法です。
そして、オブジェクトを取得するプレーヤー配列を以前に初期化しました。もう1つの奇妙なことは、コードのこの場所に到達すると、アプリがクラッシュ(woot)し、コンソールの出力が停止することです。エラーは発生せず、アプリがクラッシュしたことを通知します。それはただ...止まります。そのため、コードがクラッシュしているというエラーが何であるかさえわかりません。さらに、「player」変数を設定しているその列に関係していることもわかりません。考えやアイデア?私はあなたの知恵が大好きです!
iphone - XCode デバッガーで NSManagedObjects をデバッグするにはどうすればよいですか?
XCode デバッガーでエンティティ (NSManaged オブジェクトのサブクラス) の値を取得するにはどうすればよいですか? NSObject 構造と _cd_XXX 構造の間で迷子になります。
iphone - 特定の NSManagedObject を除外するための NSPredicate 構文
多くのエンティティが特定の NSEntityDescription の一意のインスタンスであるコア データ ストアがあります。現在、特定の説明の新しいエンティティを作成してこれを行っています。次に、次のようにします。
これは機能しますが、反復ではなく NSPredicate で != を実行できるはずですが、それを実行するための正しい述語構文がわかりません。誰でも私を啓発できますか?
iphone - アプリケーションでNSManagedオブジェクトが失われる
私は楽しい小さなiPhoneアプリでかなりの仕事をしてきました。ある時点で、Persistantストアから多数のプレーヤーオブジェクトを取得し、それらを画面に表示します。新しいプレーヤーオブジェクト(カスタムUIButtonのみ)を追加したり、選択したプレーヤーを削除したりするオプションもあります。
ただし、どの「プレーヤー」が表示されているかをアプリが保存していないという点で、メモリ管理の問題が発生していると思います。
例:4人のプレーヤーが表示されているので、それらをすべて選択してから、すべて削除します。それらはすべて消えます。しかし、アプリケーションを終了してから再度開くと、それらはすべて再び存在します。彼らが去ったことがないかのように。したがって、私のコードのどこかで、それらは「実際に」削除されていません。
したがって、このスニピット(viewdidLoadメソッド内)では、永続ストアからプレーヤーを取得し、不要なオブジェクト(boolValueがNOのオブジェクト)を削除して、残りを保持します。これはうまくいきます、私はかなり確信しています。問題は、プレイヤーをどこから削除するかだと思います。そのコードは次のとおりです。
2番目のコードスニペットの大きな部分は、currentMultiPlayerに対してNOに設定したことです。いいえいいえいいえいいえいいえ、ビューが読み込まれたときに戻ってはいけません。私がそう言うまでは。コードの他の関連部分でYESに設定されているものはありません。それは私に考えさせます...おそらく彼らは救われていません。おそらくそれは保存されません、おそらくそれらのオブジェクトはもう管理されていないので、それらは保存されません。NSManagedオブジェクトの存続期間(比喩的に)はありますか?Players配列は、「viewDidLoad」メソッドで設定したものと同じであり、SelectedPlayersは、選択されたプレーヤー、NSManagedObjectsへの参照を保持します。アレイからそれらを削除することと関係がありますか?私はとても混乱しているので、いくつかの洞察をいただければ幸いです!!
cocoa - NSManagedObjectをあるコンテキストから別のコンテキストにコピーまたは移動するにはどうすればよいですか?
私は、かなり標準的なセットアップであると想定しています。1つのスクラッチパッドMOCは決して保存されず(Webからダウンロードされたオブジェクトの束を含む)、もう1つの永続的なMOCはオブジェクトを永続化します。ユーザーがscratchMOCからオブジェクトを選択してライブラリに追加する場合、1)オブジェクトをscratchMOCから削除してpermanentMOCに挿入するか、2)オブジェクトをpermanentMOCにコピーします。Core Data FAQには、次のようなオブジェクトをコピーできると書かれています。
(この場合、context2はpermanentMOCになります。)ただし、これを行うと、コピーされたオブジェクトに障害が発生します。データは最初は未解決です。後で解決されると、すべての値がnilになります。元のmanagedObjectのデータ(属性または関係)は、実際にはコピーまたは参照されません。したがって、このobjectWithID:メソッドを使用することと、insertNewObjectForEntityForName:を使用して完全に新しいオブジェクトをpermanentMOCに挿入することの違いはわかりません。
パーマネントMOCで新しいオブジェクトを作成し、古いオブジェクトから各キーと値のペアを手動でコピーできることはわかっていますが、そのソリューションにはあまり満足していません。(私はこの問題を抱えているさまざまな管理対象オブジェクトをいくつか持っているので、コピーを作成して更新する必要はありません。開発を続けるにつれて、それらすべてのメソッドを作成します。)より良い方法はありますか?
iphone - Iphone - 管理対象オブジェクトのコンテキストが正しく保存されない
理由は何でも
ビューコントローラー(ドリルダウンテーブルビューを介してアクセス)に実装すると、情報が適切に保存されませんか? 私は最初からモックを渡しています(ルートビューはテーブルビューに引き渡し、テーブルビューはuiviewを呼び出すまで再帰的にそれ自体に渡します)、テーブルビューをポップ/プッシュすると、テーブルに追加が表示されます(残念ながらviewWillAppearのreloadDataはありません更新したい)。
代わりに managedObject を渡して、そこからコンテキストを取得する必要がありますか?