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

Mik*_*keS 8 objective-c nscoding

使用NSCoding和解码值时,有没有办法判断给定键是否存在值?换句话说,我想要做的是......

if([decoder valueExistsForKey:@"myKey"])   //valueExistsForKey is not a real method :(
{
    NSInteger *myInt = [decoder decodeValueForKey:@"myKey"];
}
else
{
    //handle special case
}
Run Code Online (Sandbox Code Playgroud)

问题是我在我的应用程序中有旧版本的文档没有"myKey"值,如果他们没有它,使用0表示myInt(如果解码不存在的密钥会发生什么)不是我想要的行为.但是,我不能只解码并检查myInt == 0,因为它可能合法地等于0.

由于valueExistsForKey方法似乎不存在,我该如何复制此行为?