这是我面临的一个奇怪问题。我用来将我的值保存到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"];
}
有人可以帮忙吗?
我在模拟器上运行它。所有价值[即这里的字符串]到位,只是没有插入。另外,如果我打印在控制台中打印这一行,我会在其中存储值: 表达式中的语法错误,接近“变量”。
编辑: 当这部分运行时,这个应用程序实际上是在MAC PC上运行但现在我在macbook上运行它。这会造成这个问题吗?
提前完成。
答案 0 :(得分:0)
因为您以前使用过此方法,所以可以将其与之后所做的任何更改进行比较。从版本控制开始工作时,您是否有一些代码?
我猜这会显示你已经以某种方式改变了公司并且编码不正确?
PS究竟是什么打字来尝试'打印说明' - 如果这是语法错误,我们应该能够很容易地修复它?
答案 1 :(得分:0)
如果要使用模拟器并获取变量值,则需要使用xcode调试配置(不是发布或分发)来构建和调试。希望这可以帮助!