使用NSCoding进行解码:密钥的值是否存在?

时间:2012-08-14 17:38:12

标签: objective-c nscoding

使用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方法似乎不存在,我该如何复制此行为?

1 个答案:

答案 0 :(得分:17)

containsValueForKey怎么样?