2009-03-19 6 views
4

내 iPhone 앱의 '설정'모델을 만들었습니다. 여기에는 두 개의 등록 정보와로드를위한 클래스 메소드와 저장을위한 인스턴스 메소드가 포함되어 있습니다.NSUserDefaults를 잘못 사용하고 있습니까?

+ (UserSettings *)getCurrent { 
    NSUserDefaults *userPrefs = [NSUserDefaults standardUserDefaults]; 
    UserSettings *settings = [UserSettings new]; 
    settings.username = [userPrefs stringForKey:kUserNameKey]; 
    settings.password = [userPrefs stringForKey:kPasswordKey]; 
    [userPrefs release]; 
    return settings; 
} 

NSUserDefault으로 취급 예외 캐스트 문제를 다음과 같이

I는로드;

가 - [NSCFArray objectForKey이 :] : 인식 할 수없는 선택기 인스턴스에 전송 0x50b220

I는 다음과 같이 정의 된 상수 내 헤더를 가져 왔습니다;

#define kUserNameKey @"Username" 
#define kPasswordKey @"Password" 

(I 키 체인의 알고 나중에 그에게 변경에 대한 계획입니다하지만 userdefaults를 해결하려는)

답변

7

은 유지하거나 그것을 alloced 결코부터 [userPrefs release]을 제거하려고

+0

"standardUserDefaults"함수가 할당해야한다는 인상하에있었습니다. 그건 내 문제가 된 것 같다. 감사합니다 – ullmark

+0

경험 법 : 당신이 그것을 할당, 유지 또는 복사 한 다음에 릴리스 또는 자동 해제를 수행하는 경우에만 – cobbal

+1

Objective-C 메모리 관리에 대해 알아야 할 모든 것 : http://developer.apple.com/documentation/Cocoa/ 개념적/MemoryMgmt/MemoryMgmt.html – Chuck

0

방법 username/password에 대해 정의 된 UserSettings 속성이 있습니까? 문자열에 대해서는 "복사"로 설정해야합니다.

관련 문제