로그인 데이터를 유지하기위한 3 가지 주요 옵션이 있습니다. 설정, 핵심 데이터 및 SqlLite. 사용자 이름과 암호의 경우 다른 두 옵션의 오버 헤드가 너무 많아서 설정을 사용해야 만하고 관계형 데이터에 더 자주 사용됩니다.
설정을 사용하려면 애플리케이션 컨트롤러를 초기화 할 때로드해야합니다.
+ (void) loadDefaultSettings {
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *pListPath = [path stringByAppendingPathComponent:@"Settings.bundle/Root.plist"];
NSDictionary *pList = [NSDictionary dictionaryWithContentsOfFile:pListPath];
NSMutableArray *prefsArray = [pList objectForKey:@"PreferenceSpecifiers"];
NSMutableDictionary *regDictionary = [NSMutableDictionary dictionary];
for (NSDictionary *dict in prefsArray) {
NSString *key = [dict objectForKey:@"Key"];
if (key) {
id value = [dict objectForKey:@"DefaultValue"];
[regDictionary setObject:value forKey:key];
}
}
[[NSUserDefaults standardUserDefaults] registerDefaults:regDictionary];
}
그러면 메서드 호출을 통해 사용자 이름과 암호를 저장할 수 있습니다.
+ (void) storePersistedLogin:(NSString *)uid withPassword:(NSString *)pswd {
[[NSUserDefaults standardUserDefaults] setObject:uid forKey:@"UID"];
[[NSUserDefaults standardUserDefaults] setObject:pswd forKey:@"PSWD"];
}
다음 방법을 사용하여 UITextField 입력을 채울 수 있습니다.
+ (void) populatePersistedLogin:(UITextField **)uid andPassword:(UITextField **)pswd {
[*uid setText:(NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:@"UID"]];
[*pswd setText:(NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:@"PSWD"]];
}
나는 이러한 공개 메소드를 별도의 SettingsUtils 클래스에 가지고 있으므로 키가 동일한 지 확인할 수 있습니다. 또한 키를 잘못 입력 할 가능성을 줄이기 위해 NSString 객체로 키를 선언 할 수도 있습니다.
iphone의 sqlite 데이터베이스에 동일한 사용자 이름과 비밀번호를 저장하려는 경우 – Rocky
예를 들어 사용자 이름과 비밀번호로 양식을 등록하면 동일한 사용자 이름과 비밀번호를 로컬 데이터에 저장해야합니다. 그러면 친구와 데이터가 도움이됩니다. in json – Rocky
@Abhishek 귀하의 의견에 혼란스러워합니다. 무엇을하고 싶습니까? 둘 이상의 사용자 이름과 비밀번호를 저장하려고합니까? JSON을 언급했다. 서버에 양식을 제출 한 응답인가? JSON에서 값을 추출한 다음 위에서 설명한대로 값을 저장해야합니다. 여러 사용자 이름과 암호를 원할 경우 어떻게 사용 하시겠습니까? 장치에 대해 한 명의 사용자 만 있습니까? –