【发布时间】:2010-07-02 06:56:10
【问题描述】:
这是我面临的一个奇怪问题。我用来将我的值保存到 nsuserdefaults 的以下代码工作正常。保存和检索所有值,但它现在完全让我发疯了。它没有保存任何值,并且检索到的值被视为无效。我正在使用编码和解码来保存名为 companyObject 的自定义对象。没有存储一个值。
-(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 pc 上运行,但现在我在 macbook 上运行它。这会造成这个问题吗?
提前感谢。
【问题讨论】:
标签: iphone nsuserdefaults