2016-12-15 3 views
0

私はiOSで新しく、coredataの値を更新する際の問題に直面しています。Objective-Cのcoredataの値を更新するには

保存

NSManagedObjectContext *context = [self managedObjectContext]; 
NSManagedObject *device; 

       if (self.device) { 
        // Update existing device 
        [device setValue:GlobalIndexPath forKey:@"key"];           
       } else { 
        // Create a new device 
        NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"Device" inManagedObjectContext:context]; 
        [newDevice setValue:GlobalIndexPath forKey:@"key"]; 
       } 

       NSError *error = nil; 
       // Save the object to persistent store 
       if (![context save:&error]) { 
        NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]); 
       } 

のためのコアデータをフェッチするために私のコードは

NSManagedObjectContext *context = [self managedObjectContext]; 

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
[request setEntity:[NSEntityDescription entityForName:@"EntityName" inManagedObjectContext:context]]; 

NSError *error = nil; 
NSArray *results = [context executeFetchRequest:request error:&error]; 

され、Iおよびコード

NSManagedObject* favoritsGrabbed = [results objectAtIndex:0]; 
[favoritsGrabbed setValue:@"1" forKey:@"Key"]; 

を使用してアップデートコードは、それが一つのオブジェクトを追加更新しない更新します。

注 - GlobalIndexPathは、文字列の名前です。

しかし、これは私には何の示唆もありません。アドバイスに感謝!

+0

コンテキストを保存しようとしましたか? –

+0

@LucasDerraughはい私はそれを保存しています。 – Muju

+0

_ [self managedObjectContext] _では何をしていますか?より多くのコードを共有してください。コアデータから正常に取得できますか? – Adeel

答えて

2

NSManagedObjectを変更して永続化するたびにコンテキストを保存する必要があります。試してみてください:

NSManagedObject* favoritsGrabbed = [results objectAtIndex:0]; 
[favoritsGrabbed setValue:@"1" forKey:@"Key"]; 
NSError *error = nil; 
// Save the object to persistent store 
if (![context save:&error]) { 
    NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]); 
} 
+0

私は同じコードを使用していますが、問題は更新ですが、IndexPathを変更してもインデックス0のみになります。 – Muju

+0

@Mujuあなたが共有しているコードは、 'results'配列の最初のオブジェクトを明確に更新します。あなたが何か他のことをしているのであれば、あなたの質問を更新して詳細を提供してください。 – Adeel

+0

あなたのコード作業は大変ありがとうございます。あなたは私の日を救う。 – Muju

関連する問題