2013-05-17 2 views
2

매우 이상한 문제가 발생했습니다.NSUserDefaults는 장치 및 시뮬레이터에서 작동하지만 .ipa를 통해 설치된 경우 장치에서 NULL을 반환합니다.

내 ipad 앱으로 웹 서버에 로그인 할 때 사용자 이메일과 암호화 된 키를 [[NSUserDefaults standardUserDefaults] synchronize]으로 저장합니다. 이 방법은 성공적으로 키 값을 저장하고 시뮬레이터에서 완벽하게 작동하며 USB 코드로 장치에 앱을 설치하면 완벽하게 작동합니다.

하지만 엔터프라이즈 사용자 용 .ipa 파일을 업로드하면 앱을 다운로드하여 설치합니다. [[NSUserDefaults standardUserDefaults] synchronize] 이메일과 키를 저장하지 않고 null을 반환합니다.

��May 17 13:31:19 xxxxxx[1590] <Warning>: post_email (null) 
��May 17 13:31:19 xxxxxxx[1590] <Warning>: post_key (null) 

왜 이런 일이 : .ipa 파일을 설치 ORGANIZER 장치 ON

[[NSUserDefaults standardUserDefaults] setInteger:userId forKey:@"user_id"]; 
[[NSUserDefaults standardUserDefaults] setObject:self.email.text forKey:@"email"]; 
[[NSUserDefaults standardUserDefaults] setObject:post_key forKey:@"key"]; 

[[NSUserDefaults standardUserDefaults] synchronize]; 

NSString *post_email = [[NSUserDefaults standardUserDefaults] valueForKey:@"email"]; 
    NSString *post_key=[[NSUserDefaults standardUserDefaults] valueForKey:@"key"]; 

NSLog(@"post_email %@",post_email); 
NSLog(@"post_key %@",post_key); 

시뮬레이터에 로그온 및 장치

post_email [email protected] 
post_key xxxxxxx 

LOG? 이 문제를 어떻게 해결할 수 있습니까?

EDIT FOR FUTURE REFEFRENCES:::::: 

rmaddy의 대답은 정확한 문제가 있었다 null 값에 대한 올바른 비록 : ASIHTTPRequest begins but never ends

하고 대답했다 : https://groups.google.com/forum/?fromgroups#!topic/asihttprequest/fw7PDcD2wKI

+0

'valueForKey :'가 아닌'objectForKey :'를 사용하십시오. – rmaddy

+0

아마도'self.email.text' 자체는 nil입니다. – matt

+0

바보 같은 질문 : 엔터 프라이즈 수준에서 NSUserDefaults 기능을 비활성화 할 수 있습니까? – Aaron

답변

1

당신이 objectForKey:하지 valueForKey: 사용해야 NSUserDefaults에서 개체를 얻을 수 있습니다. valueForKey:은 키 - 값 코딩 (KVC)에 사용됩니다.