只是想知道是否有人遇到这个问题?
我目前正在使用 Objective-C 在 iOS 中开发应用程序。在编译应用程序后,有时我在NSUserDefaults
中的数据会丢失。
但是,如果我忽略它,并重新编译应用程序再次数据突然再次出现。
我已经在几个地方进行了同步(不是在每个键中,而是仅在几个地方)。
如果有人遇到这个问题之前,我希望你能分享如何处理这个问题。
P.S.我需要一个存储来保存 1 个特定的对象,所以我可以在应用程序重新打开时检索它。
已编辑以添加代码
NSString *enPIN = [[NSString alloc]initWithString:[NSString stringWithFormat:@"%@", [enterField.text md5]]];
[[NSUserDefaults standardUserDefaults] setObject:enPIN forKey:@"pin"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSLog(@"check pin %@", [[NSUserDefaults standardUserDefaults] objectForKey:@"pin"]);
该对象是一个字符串,我使用 md5 散列它,然后将其存储在 nsuserdefault 中,如果它只是随机地 dissapearing 也许它不奇怪,但如果我重新编译应用程序,它也会在 dissapear 之后再次收获
检查您的默认值是否仅使用字符串值或 bool 等。
如果您使用任何对象与类(键和参数),如 NSObject 存储在默认值中,我更喜欢你在存储和检索值之前进行相应的编码和解码。
此外,如果您存储任何 NSDictionary 检查,如果该字典中的任何对象值不是 Bool,String 以外的任何东西,如果还有任何 NSObject 类或引用被存储,那么您可能会面临同样的问题。
请参考此stackoverflow link,了解如何在将对象存储到 NSUserDefaults 之前对其进行编码。
最后 [默认同步] 调用强制视图将消失或立即存储新值后,无论哪种方式是你的实现。
希望这有帮助。
前几天我遇到了类似的问题NSUserDefaults
不太确定是什么原因造成的,但这是由于 Xcode 中的一个错误。我能够修复这个问题,而不改变我的代码。我只是清理了项目 (CMD-Shift-K
),并重新启动了我的电脑,然后它工作得很好。值得一试
您是否在控制台中收到任何类型的错误消息?
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(4条)