8

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

4

1 回答 1

18

怎么样containsValueForKey

于 2012-08-14T17:40:00.280 回答