2011-03-27 5 views
1

내 앱에서는이 값을 얻기 위해 무엇을 사용해야하는지 이중 값 (높은 점수)과 String (플레이어 이름)을 저장해야합니다.사용자 이름과 최고 점수를 저장하는 가장 좋은 방법은 무엇입니까

어떤 아이디어라도 좋습니다. 이 deanWombourne, 당신은이 데이터를 저장 NSUserDefaults를 사용할 수 있습니다 말했듯이 당신이 다음 저장하고 모든 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

괜찮을 경우

당신에게

+0

문제는 점수 (double value)에 오류가 발생했습니다. 비교할 수없는 유형이 발생했습니다 –

+0

점수를 저장하기 전에 문자열을 double로 변환하려고 시도하고 다시 double로 변환하려고 할 때 ... – matteodv

+0

igot SFHFKeychainUtils.o의 SFHFKeychainUtils.o _kSecClassGenericPassword $ non_lazy_ptr에있는 여러 번 이러한 오류가 여러 번 + [SFHFKeychainUtils storeUsername : andPassword : forServiceName : updateExisting : error :] –

3

감사하지만 보안 상 안전하지 않을 수 있습니다. 이 데이터를 "방송 중"에 저장하지 않으려면 Buzz Andersen이 SFHFKeychainUtils을보고 iPhone 키 체인에 저장하십시오.

먼저 SFHFKeychainUtils 파일을 프로젝트에 복사하십시오. SFHFKeychainUtils.m을 클릭하고 정보 입수를 클릭하십시오. 대상 탭으로 이동하여 대상 근처의 상자가 선택되어 있는지 확인하십시오. 그렇지 않다면 확인하십시오. 프레임 워크 폴더를 Control- 클릭하고 Add Existing Framework를 선택하십시오. Security.framework를 찾아 프로젝트에 추가하십시오. 또한 SFHFKeychainUtils.m과 동일한 절차를 수행하여이 프레임 워크가 대상에 추가되는지 확인하십시오. 이제이 코드를 사용할 위치의 구현 파일을 열고 상단에 #import "SFHFKeychainUtils.h"을 추가하십시오.

이이 코드를 사용하는 방법에 대한 약간의 예입니다 : 사용자가 자신이 com.domainname.app.plist에 액세스하고 변경할 수있는 탈옥 아이폰이있는 경우 응답에 대한하지만,이 방법으로


// 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.
+0

헬로 감사는 그가 원하는 모든 가치에 대한 그의 점수. .plist 내 키 값을 숨길 수 있습니다. –

+0

아, 당신은 결코 안전하다고 말하지 않았습니다 :)이 방법은 가장 쉽습니다. 보안을 원하면 @ Matthew의 대답을 대신 사용하십시오. – deanWombourne

+0

키 체인은 사용자의 데이터를 보호하지 않습니다. 환경 설정 plist보다 키 체인 데이터에 액세스하는 것이 분명 더 많은 일이지만 사용자의 데이터를 다른 사용자 (즉, 사용자의 암호를 모르는 사람들)로부터 보호하기위한 용도로만 사용됩니다. NSUserDefaults를 사용하고 응용 프로그램 코드에 저장된 키를 사용하여 값을 암호화 할 수도 있습니다. –

관련 문제