【发布时间】:2017-09-03 21:52:59
【问题描述】:
只是想知道是否有人遇到过这个问题?
我目前正在使用 Objective-C 在 iOS 中开发应用程序。
有时我在编译应用程序后会丢失NSUserDefaults 中的数据。
但如果我忽略它并再次重新编译应用程序,数据会突然重新出现。
我已经在几个地方进行了同步(不是在每个键中,而是在几个地方)。
如果有人碰巧遇到过这个问题,希望你能分享一下如何处理这个问题。
附:我需要一个存储来保存 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 中,如果它只是随机消失可能并不奇怪,但如果我重新编译应用程序,它也会在消失后再次出现
【问题讨论】:
-
存储对象如下面的答案链接中给出的以相同状态读取和存储。 stackoverflow.com/questions/2315948/…
-
请出示您的代码。您是在设备还是模拟器上进行测试?如果一个模拟器,你总是使用同一个模拟器吗?
synchronizeIan 没必要。 -
@Paulw11 hi paul 我编辑了我的问题以添加代码,我没有使用模拟器,我使用的是设备,ipad mini2,
-
您的
md5扩展是否返回NSString?为什么要和initString&stringWithFormat一起跳舞?为什么不简单地NSString *enPIN = [enterField.text md5]?检索时使用stringForKey:并且无需调用synchronize- 摆脱它。 -
是的,我再次看到它在我身边实际上是多余的,因为以前的代码,至于我在这里和那里搜索的同步,它需要确保,但问题仍然随机发生在我进行同步之前已经出现,并且同步没有任何效果。
标签: ios local-storage nsuserdefaults