gpt4 book ai didi

ios - NSKeyedArchiver 从 objectForKey 更改为 intForKey

转载 作者:行者123 更新时间:2023-11-29 12:34:05 24 4
gpt4 key购买 nike

我有一个使用 NSKeyedArchiver 存储数据的应用程序,一切正常。

在应用程序的第一个版本中,值 X 以字符串形式存储,但现在我将其更改为以 int 形式存储和保存。问题是,如果有人从旧版本更新到最新版本,应用程序会崩溃,因为 intForKey: 在包含字符串的键上被调用。

在解码过程中是否有某种方式来检查正在解码的是 int 还是对象?

最佳答案

NSKeyedArchiver 实际上并不对原始值进行编码。相反,它将它们包装在 NSNumber 中。

也许,您是否尝试过使用 decodeObjectForKey: 而不是 decodeIntegerForKey:

例如,

id xObject = [decoder decodeObjectForKey:@"xObjectKey"];
self.x = [xObject integerValue];

// I believe this should work because xObject will either by an NSNumber or NSString
// Both of which respond to the selector integerValue

关于ios - NSKeyedArchiver 从 objectForKey 更改为 intForKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26833496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com