NSUserDefault - 无法获取值

时间:2014-03-13 21:32:38

标签: ios iphone uitableview nsuserdefaults

在tableView的didSelectRowAtIndexPath方法中,我正在NSUserDefault这样保存一些数据

UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
NSUserDefaults *storeData=[NSUserDefaults standardUserDefaults];
[storeData setObject:selectedCell.textLabel.text forKey:@"tpName"];

在另一个地方,我使用此代码获取此数据,

NSUserDefaults *storeData=[NSUserDefaults standardUserDefaults];
NSLog(@"tpName is %@",[storeData valueForKey:@"tpName"]);

但在此NSLog中,我获得null值。任何人都可以建议我在哪里做错了吗?

1 个答案:

答案 0 :(得分:0)

NSUserDefaults在获得同步之前不会写入磁盘。用户默认值会定期自动同步,或者您可以手动调用它,如下所示:

UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
NSUserDefaults *storeData=[NSUserDefaults standardUserDefaults];
[storeData setObject:selectedCell.textLabel.text forKey:@"tpName"];
[storeData synchronize];

如果您在设置用户默认值后立即退出应用程序(未手动同步),则不会在磁盘上更新standardDefaults