我正在使用核心数据来保存游戏的分数,并且在得分被击败时需要帮助更新条目。这就是我所在的地方。我在应用程序第一次启动时写入数据,如下所示:
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 条目并将其写回数据存储而不创建新条目,而是更新现有条目。
帮助/示例会非常有帮助,非常感谢。
谢谢,凯尔