简体   繁体   English

NSUserDefault-无法获取值

[英]NSUserDefault - Not Able to fetch value

In didSelectRowAtIndexPath Method of tableView , I am saving some data in NSUserDefault like this 在tableView的didSelectRowAtIndexPath方法中,我像这样在NSUserDefault保存了一些数据

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

and at another place I am fetching this data with this code , 在另一个地方,我正在使用此代码获取此数据,

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

But In this NSLog I am getting null value . 但是在这个NSLog我得到了null值。 Can Anyone suggest me where am I doing wrong ? 有人可以建议我我在哪里做错了吗?

The NSUserDefaults doesn't get written out to disk until it gets synchronized. 在同步之前,不会将NSUserDefaults写入磁盘。 The user defaults get synchronized automatically at periodic intervals, or you can call it manually like so: 用户默认值会定期自动同步,或者您可以手动调用它,如下所示:

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

If you are quitting your application shortly after the user defaults get set (without synchronizing manually), your standardDefaults will not be updated on disk. 如果您在设置用户默认值后不久退出了应用程序(没有手动同步),那么您的standardDefaults将不会在磁盘上更新。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM