2010-07-02 4 views
0

이것은 내가 직면하는 이상한 문제입니다. 내 값을 nsuserdefaults에 저장하는 데 사용한 다음 코드는 제대로 작동했습니다. 모든 값을 저장하고 검색하지만 완전히 견디고 있습니다. 그것은 어떤 값도 저장하지 않고 검색된 값은 유효하지 않은 것으로 보입니다. companyObject라는 사용자 정의 객체를 저장하기 위해 인코딩과 디코딩을 사용하고 있습니다. 단일 값은 저장되지 않습니다.UserDefaults 값을 저장하지 않음 iphone

-(void)saveCustomObject 
{ 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

NSMutableArray *companyArray = [[NSMutableArray alloc]init]; 
for(Company *companyObj in companyObjectsArray) 
{ 
    [companyArray addObject: [NSKeyedArchiver archivedDataWithRootObject:companyObj]]; 
} 

[defaults setObject:companyArray forKey:@"companyData"]; 
[defaults setObject:userCompanyInfo.sessionkey forKey:@"sessionkey"]; 
[defaults setObject:userCompanyInfo.deviceid forKey:@"deviceid"]; 
[defaults setObject:userCompanyInfo.userid forKey:@"userid"]; 
[defaults setObject:userCompanyInfo.service_type forKey:@"service_type"]; 
[defaults setObject:userCompanyInfo.isduallogin forKey:@"isduallogin"]; 
[defaults setObject:userCompanyInfo.securitycode forKey:@"securitycode"]; 

[defaults synchronize]; 
} 



-(void)loadCustomObject 
{ 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

NSMutableArray *companies = [NSMutableArray array]; 
NSArray *oldCompanies = [[NSUserDefaults standardUserDefaults] arrayForKey:@"companyData"]; 
if(companies) 
    { 
     for(NSData *data in oldCompanies) 
      { 
       Company* companyObj = (Company*) [NSKeyedUnarchiver unarchiveObjectWithData:data]; 
       [companies addObject:companyObj]; 
      } 
    } 

NSString *sessionKey = [defaults stringForKey:@"sessionkey"]; 
NSString *deviceId = [defaults stringForKey:@"deviceid"]; 
NSString *userId = [defaults stringForKey:@"userid"]; 
NSString *service_type = [defaults stringForKey:@"service_type"]; 
NSString *isduallogin = [defaults stringForKey:@"isduallogin"]; 
NSString *securitycode = [defaults stringForKey:@"securitycode"]; 
} 

아무도 도와 줄 수 있습니까?

나는 시뮬레이터에서 실행하고 있습니다. 모든 값 [즉, 여기에 문자열이 있음]이 삽입되지 않습니다. 또한 내가 값을 저장하고있는 변수에 대한 설명을 인쇄하면이 줄이 콘솔에 인쇄됩니다. 표현식의 구문 오류,`변수 근처 ').

EDIT : 이 응용 프로그램은이 부분이 실행될 때 실제로 MAC pc에서 실행 중이지만 이제는 MacBook에서 실행 중입니다. 이 문제가 발생할 수 있습니까?

고지.

답변

0

이전에이 방법을 사용했기 때문에 이전에 변경 한 내용과 비교할 수 있습니다. 버전 관리에서 작동 할 때부터 몇 가지 코드가 있습니까?

나는 회사을 어떻게 든 변경했음을 보여주고 적절하게 인코딩하지 않는다고 생각합니다.


PS 무엇, 정확하게, 당신은 '인쇄 설명'하려고 입력하는 - 그것은 구문 오류가 있다면 우리는 아주 쉽게 문제를 해결할 수 있어야한다?

+0

구문 오류가 아닌 것 같습니다. 인쇄 설명에서 각 명령문에 대해 오류가 발생하고 개체가 "<변수"로 보이기보다는 할당 된 것처럼 보이지 않습니다. 나는 "/ 변수"가 무엇을 의미하는지 모른다. 성명 : NSMutableArray * companyArray = [[NSMutableArray alloc] init]; 그리고 삽입은 companyObject뿐만 아니라 아래에 작성된 단일 문자열 값에 대해서도 작동하지 않습니다. – neha

+0

흠, 그건 이상합니다. 질문을 편집하고 인쇄 설명에 사용중인 코드를 추가 할 수 있습니까? 또한 콘솔 오류를 추가하십시오. 어쩌면 다른 사람이 다른 생각을 가지고있을 것입니다! – deanWombourne

+0

저를 도와 주신 Thanx deanWombourne입니다. 정확한 문제는 모르지만 .h 파일의 모든 변수를 선언하여 해결했습니다. 그것은 시간 문제에 대한 문제를 해결했습니다. 로컬 변수로 선언 된 변수는 액세스 할 수 없습니다. – neha

0

시뮬레이터를 사용하여 변수 값을 얻으려면 & 디버그를 xcode 디버그 구성 (릴리스 또는 배포 제외)으로 빌드해야합니다. 희망이 도움이!

관련 문제