Каков наилучший способ сохранения имени пользователя и рекордов? - PullRequest
1 голос
/ 27 марта 2011

В моем приложении мне нужно сохранить двойное значение (высокий балл) и строку (имя игрока), что я должен использовать, чтобы получить это.

любая идея будет отличной.

СпасибоВы

Ответы [ 2 ]

3 голосов
/ 27 марта 2011

Если это все, что вы сохраняете, то NSUserDefaults должно быть хорошо

// To store
[[NSUserDefaults standardUserDefaults] setObject:name forKey:@"name"];
[[NSUserDefaults standardUserDefaults] setDouble:score forKey:@"score"];

// To read back in
NSString *name = [[NSUserDefaults standardUserDefualts] objectForKey:@"name"];
double score = [[NSUserDefaults standardUserDefaults] doubleForKey:@"score"];
// Don't forget that your name is autoreleased - if you want to keep it, set it to a retained
// property or retain it yourself :)
1 голос
/ 27 марта 2011

Как сказал deanWombourne, вы можете использовать NSUserDefaults для хранения этих данных, но они не очень безопасны. Если вы не хотите хранить эти данные «в воздухе», вы можете взглянуть на SFHFKeychainUtils Buzz Andersen, чтобы сохранить их в связке ключей iPhone.

Прежде всего, скопируйте файлы SFHFKeychainUtils в свой проект. Нажмите на SFHFKeychainUtils.m и нажмите Получить информацию. Перейдите на вкладку «Цель» и проверьте, установлен ли флажок рядом с вашей целью. Если нет, проверьте это. Удерживая клавишу Control, щелкните папку «Framework» и выберите «Add Existing Framework». Найдите Security.framework и добавьте его в свой проект. Проверьте также, что эта структура добавлена ​​к вашей цели, выполнив ту же процедуру, что и для SFHFKeychainUtils.m. Теперь откройте файл реализации, в котором вы хотите использовать этот код, и добавьте сверху #import "SFHFKeychainUtils.h".

Это небольшой пример использования этого кода:


// to store your data  
NSError *error = nil;  
[SFHFKeychainUtils storeUsername:kName andPassword:name forServiceName:kStoredName updateExisting:YES error:&error];  
[SFHFKeychainUtils storeUsername:kScore andPassword:score forServiceName:kStoredScore updateExisting:YES error:&error];  

// to get them back  
NSString *name = [SFHFKeychainUtils getPasswordForUsername:kName andServiceName:kScoredName error:&error];  
double score = [SFHFKeychainUtils getPasswordForUsername:kScore andServiceName:kScoredScore error:&error];  

// kName, kScore, kStoredName, kStoredScore are defined key but you can use also strings with @"your string here".
// It is important that when you store and get back a value, username and serviceName must be the same.
...