NSKeyValueCoding - это неформальный протокол, который позволяет кодировать значение ключа.Это часть Foundation, поэтому она уже доступна для вас.
Вы можете попробовать переопределить valueForUndefinedKey
, который вызывается, когда вы пытаетесь получить доступ к чему-либо способом KVC, где нет свойства или средства доступа, совместимого с KVC.Затем, в переопределенном методе, вы можете просто передать значение ключа в словарь:
- (id) valueForUndefinedKey: (NSString*)aKey {
return [obj objectForKey:aKey];
}
добавьте туда проверку ошибок, и вы должны быть в порядке.
Теперькогда вы вызываете:
NSString *theKey = @"Key1";
NSString *val1 = [obj theKey];
и если нет свойства с именем Key1
и нет метода, который возвращает объект с именем Key1
, он вызовет valueForUndefinedKey:theKey
, который вызовет ваш словарь дляобъект, назначенный клавише @ "Key1".