我在我的应用中与一个相当讨厌和虚幻的错误作斗争。我使用Keychain包装器UYLPasswordManager在iOS钥匙串中存储一个长的随机字符串(> 3200个字符)。在看似完全随机的时间段之后,存储在Keychain中的值将返回为日期字符串而不是最初存储的长字符串。
现在,我说它返回一个日期字符串而不是长字符串,但它很可能返回任意数量的不正确的字符串 - 我只能通过调试重现它一次才能看到从钥匙串回来的错误价值。
我尝试过的事情:
除此之外,由于虫子的虚幻性,我无法从不同的角度攻击它,因为我不知道还有什么地方可以看。我在Keychain中存储了其他字符串,这些字符串更短,从来没有出现问题。是否存在已知问题或在密钥链中存储长字符串的类似经验的其他人?
我使用的是Swift 1.2(问题前置v1.2)和最新的Xcode(稳定版)。
编辑:我正在尝试将字符串拆分为较小的块,并将每个字符串保存在钥匙串中,以查看是否存在损坏或随时间丢失的数据。我将在这里发布结果。
编辑:自从我将字符串分成许多小部分后,我就没有看到这个问题。在我确认使用此方法解决问题之前,我将等待一周。此外,我计划向Apple提交错误报告。