значение приращения plist - PullRequest
1 голос
/ 17 июня 2011

Я пытаюсь увеличить значение в plist в target-c (используя cocos2d).

Я загружаю данные, используя это:

documentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString* filePath2 = [documentsDir stringByAppendingPathComponent:@"weaponchallenges.plist"];
    weaponChallengesList = [[NSMutableArray arrayWithContentsOfFile:filePath2] retain];

Я считаю, что это работаеткак это не ошибка, хотя я не уверен, что лучший способ проверить это.

Внутри списка есть различные элементы словаря, внутри каждого элемента различные ключи + целые числа.

Например,первый элемент в списке содержит ключ элемента 'kills' со значением int равным 0.

Затем я использую:

NSDictionary * weaponC = [weaponChallengesList objectAtIndex:0];
        int killsTotal = [[weaponC valueForKey:@"kills"] intValue];
        [weaponC setValue:[NSNumber numberWithInt:(killsTotal + 1)] forKey:@"kills"];
        [weaponChallengesList replaceObjectAtIndex:0 withObject:weaponC];

Но killsTotal всегда кажется равным 0, любые мыслина что я мог поступить неправильно?

1 Ответ

2 голосов
/ 17 июня 2011

Проверьте каждый шаг, чтобы увидеть, является ли значение nil.Подпрограммы типа arrayWithContentsOfFile: не генерируют ошибок.Они просто возвращают nil.Таким образом, вы получите weaponChallengesList - nil, weaponC - nil, killsTotal - 0, а ваш replaceObjectAtIndex:withObject: ничего не делает.

В ObjC, если "ничего""Кажется, что происходит, то причина №1 в том, что вы отправляете сообщения nil.

...