Декодирование с помощью 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, похоже, не существует, как воспроизвести это поведение?

8
задан MikeS 14 August 2012 в 17:38
поделиться