У меня есть объект, который прямо переменные экземпляра. Некоторые из них - NSString, некоторые - беззнаковые целые и т. Д. У меня сложилось впечатление, что кодирование Key-Value можно было выполнить с помощью сценариев, так как я мог написать такой код:
id key, value;
key = [[attributes objectAtIndex:j] name];
value = [[attributes objectAtIndex:j] stringValue];
[obj setValue:value forKey:key];
Причина, по которой я здесь использую stringValue и имя, заключается в том, что я работаю с TouchXML и строю объекты из каналов XML.
Приведенный выше код вылетает, если я пытаюсь присвоить что-либо целому числу. Если я изменю свой unsigned int на экземпляр NSString, не произойдет никаких сбоев во время выполнения. Насколько я понимаю, кодирование значения ключа достаточно умен, чтобы обнаружить эту проблему.
Каковы мои возможные решения? Как я могу абстрагировать это как можно больше, чтобы я мог запустить один и тот же метод для множества разных классов, у всех из которых есть свои собственные переменные экземпляра?
Является ли самый элегантный способ действительно переопределить мой установщик и использовать NSNumber для преобразования строки в тип int, который, как я думал, уже был обработан KVC?