0

ゲームのスコアを保存するためにコア データを使用していますが、スコアを上回ったときにエントリを更新するのに助けが必要です。これが私がいるところです。アプリの初回起動時に次のようにデータを書き込みます。

LevelData *levelOne = [NSEntityDescription insertNewObjectForEntityForName:@"LevelData" inManagedObjectContext:context];
    levelOne.levelNum = @"1";
    levelOne.topScore = @"0";
    levelOne.isPassed = @"No";

    if (![context save:&error]) {
        NSLog(@"coudlnt save: %@", [error localizedDescription]);
    }

次に、レベルの最後にあるデータを次のように読み取ります。

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"levelNum == 1"];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"LevelData" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSError *error;
NSArray *fetchedObjects = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
for (LevelData *info in fetchedObjects) {
    NSLog(@"Is Passed: %@", info.levelNum);
    NSLog(@"Top Score: %@", info.topScore);
    NSLog(@"Is Passed: %@", info.isPassed);
}

私が立ち往生しているのは、topScore エントリを更新し、新しいエントリを作成せずにデータ ストアに書き戻すことですが、既存のエントリを更新することです。

そして、ヘルプ/例はとても役に立ち、とても感謝しています.

ありがとう、カイル

4

1 に答える 1