2012-07-01 12 views
5

私は現在、ドキュメントやウェブを通じて探していますが、私は私が探しています何を見ていないですし、私が探していますが:-)IOS - コアデータ更新記録

が存在する場合、私はちょうど確認したいです

NSManagedObject *newSoftware = [NSEntityDescription insertNewObjectForEntityForName: 

今私が更新することができますそのような行があります: - 私はそれを理解したようのコード行は、私はコアデータを通じて私のアプリに表示していますSQLiteデータベースにレコードを追加することができます私が取り組んでいる記録?

このようなものはありますか?

NSManagedObject *newSoftware = [NSEntityDescription updateCurrentObjectForEntityForName: 

は、あなたは、単にNSManagedObjectのプロパティを更新し、レコードを更新するには

答えて

8

ここで私の前の答えです。何が起こっているのかを理解することはかなり詳細です。 fumoboy007コメントに基づいて

How to update existing object in Core Data?

、あなたが管理対象オブジェクトのサブクラスを設定していない場合は、あなたのオブジェクトトラフKVCを更新する必要があります。まだ作成していない場合は、作成することをお勧めします。プロパティを使用して管理オブジェクトにアクセスできるので、コードはよりクリーンに見えます。ここで

それにリンク:

organising-core-data-for-ios

+0

詳細な回答ありがとうございました - 私はそれを働かせました:-) –

+0

こんにちは、私はまだ1つの質問が残念ですあなたは気にしないでください:-) @ "title ==%@"の代わりに、 "Some Title" ];あなたが私に与えたリンクのように、私は@ "name ==%@"、self.appNameTxtFld.text]を使います; 問題は、配列内のすべての情報行が、選択した情報行だけでなく変更されることです。私は自分の行動においてどのように具体化することができますか? –

+0

@JeffKranenburg申し訳ありませんが、私は理解できません、あなたの答えに編集を追加し、そこに説明するかもしれません。私はあなたを助けようとします。ありがとう。 –

11

:-)フィードバックをありがとうございました。 CoreDataを使用している場合は、 "テーブル"ごとにNSManagedObjectが必要です。 (NSFetchRequestを使用して)データベースを照会した後にオブジェクトへの参照を取得します。その後、次のようにレコードを更新することができます:myObject.firstName = "John"; Sqliteデータベースのオブジェクトを更新する準備ができたら、NSManagedContextsaveメソッドを呼び出してください。私はこれをよりよく理解するためにCoreDataサンプルアプリケーション(Xcodeで生成されたデフォルトのもののような)を使って試してみることをお勧めします。

+2

注: 'myObject.firstName = @ "ジョン";'あなたはNSManagedObjectのサブクラスを作成した場合にのみ機能します。もしあなたがそれをしなかったら、 '[myObject setValue:@" John "forKey:@" firstName "]'を実行する必要があります。 – fumoboy007

+1

質問をする前にこれを設定しましたが、レコードを更新する代わりに新しいレコードとして追加しました。 –

+0

よく説明されています。 – andyPaul

関連する問題