使用 NSCoding 和解码值时,有没有办法判断给定键是否存在值?换句话说,我想做的是...
if([decoder valueExistsForKey:@"myKey"]) //valueExistsForKey is not a real method :(
{
NSInteger *myInt = [decoder decodeValueForKey:@"myKey"];
}
else
{
//handle special case
}
问题是我的应用程序中有旧版本的文档没有“myKey”值,如果他们没有它,则使用 0 表示 myInt(如果您解码不存在的密钥会发生什么)不是我想要的行为。但是,我不能只解码并检查 myInt == 0,因为它可能合法地等于 0。
由于 valueExistsForKey 方法似乎不存在,我该如何复制这种行为?