在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
值。任何人都可以建议我在哪里做错了吗?
答案 0 :(得分:0)
NSUserDefaults
在获得同步之前不会写入磁盘。用户默认值会定期自动同步,或者您可以手动调用它,如下所示:
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
NSUserDefaults *storeData=[NSUserDefaults standardUserDefaults];
[storeData setObject:selectedCell.textLabel.text forKey:@"tpName"];
[storeData synchronize];
如果您在设置用户默认值后立即退出应用程序(未手动同步),则不会在磁盘上更新standardDefaults
。