這是我正面臨的一個奇怪問題。下面的代碼,我用我的價值保存到nsuserdefaults工作正常..保存和檢索所有的值,但它現在完全讓我瘋了。它沒有保存任何值,檢索到的值被認爲是無效的。我正在使用編碼和解碼來保存名爲companyObject的自定義對象。沒有存儲單個值。UserDefaults not saving values 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"];
}
任何人都可以請幫忙嗎?
我在模擬器上運行這個。所有的值[即字符串]到位,只是沒有插入。另外,如果我打印了控制檯中打印的這行代碼,則打印存儲值的變量的描述: 表達式中的語法錯誤,靠近`variable)'。
編輯: 這個應用程序當這部分運行時,實際上運行在MAC電腦上,但現在我在macbook上運行它。這可能會造成這個問題嗎?
Thanx提前。
它看起來不像一個語法錯誤。我在Print Description中得到每個語句的錯誤,並且該對象不是看起來被分配的,而是表現爲「
neha
2010-07-02 08:53:04
嗯,這很奇怪。 您可以編輯您的問題並添加打印說明中使用的代碼。還添加控制檯錯誤。也許其他人會有另一種想法! – deanWombourne 2010-07-02 10:59:24
Thanx deanWombourne試圖幫助我。我不知道確切的問題,但我通過在.h文件中聲明所有變量來解決它。它解決了時間問題。本地聲明的變量本身不可用於訪問。 – neha 2010-07-02 12:42:35