Я пытаюсь хранить различные типы данных в NSDictionary для сохранения в NSUserdefaults, когда игра заканчивается. Я пытаюсь сохранить char, 3 float и строку, я продолжаю получать предупреждение о char и поплавках, и я не могу найти ответ нигде. 1) Мне даже нужно настроить массивы? 2) Как хранить различные типы данных для объекта, такого как массив или словарь? код выглядит следующим образом:Хранение различных типов данных в NSArray
gameKeys = [[NSArray alloc] initWithObjects:@"gameScore",@"gameSound",@"gameDifficulty",@"theGameLoopSpeed",@"theDelayGameSpeed",nil];
gameValues = [[NSMutableArray alloc] init];
[gameValues setValue:score forKey:@"gameScore"];
[gameValues addObject:[NSString stringWithFormat:score]];// unsigned char
[gameValues addObject:[NSString stringWithFormat:sound]];//string
[gameValues addObject:[NSString stringWithFormat:gameDifficulty]];// char
[gameValues addObject:[NSNumber numberWithFloat:gameLoopSpeed]];// float
[gameValues addObject:[NSNumber numberWithFloat:delayGameLoopSpeed]];//float
NSDictionary *gameDict = [[NSDictionary alloc] initWithObjects:gameKeys forKeys:gameValues];
[gameDict setObject:[NSString stringWithFormat:score] forKey:@"gameScore"];//unsigned char
[gameDict setObject:[NSString stringWithFormat:sound] forKey:@"gameSound"];//string
[gameDict setObject:[NSString stringWithFormat:gameDifficulty] forKey:@"theGameDifficulty"];//char
[gameDict setObject:[NSNumber numberWithFloat:gameLoopSpeed] forKey:@"theGameLoopSpeed"];//float
[gameDict setObject:[NSNumber numberWithFloat:delayGameLoopSpeed] forKey:@"theDelayGameLoopSpeed"];//float
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
userDefaults = gameDict;
[userDefaults synchronize];
Что предупреждает? –
@Robot K: Я думаю, это говорит что-то вроде строки «non constant format». – JeremyP
Просто. Вау! Я еще не видел так много ошибок программирования в стольких строках реального мира. Этот фрагмент должен произойти сбой в строке 4, потому что gameValues - это 'NSMutableArray', который, как таковой, не отвечает на KVC-селектора. (В конце концов, что такое «gameScore» -й элемент нумерованного списка, который должен быть в первую очередь?) – danyowdee