Итак, Objective-C имеет эти приятные функции NSClassFromString() и NSProtocolFromString(), которые возвращают класс или протокол из переданного имени строки. Есть ли способ сделать это с объектом?
NSClassFromString()
NSProtocolFromString()
Нет, потому что объекты не имеют канонических имен или строковых представлений. С классом либо есть класс с именем "NSWindow", либо его нет. С объектами это соответствие на самом деле не применимо. Если вы хотите сериализовать объект, ознакомьтесь с протоколом NSCoding и сопровождающей документацией .
Если вы хотите создать экземпляр объекта, вы также можете сделать это
Class class = NSClassFromString(className); id object = [class new];
Самая близкая вещь, о которой я могу подумать, это -description, но я подозреваю, что вы ищете больше интроспекции для всех участников, чем базовое описание. Если да, то вы получите ответ Чака , потому что вам нужно сериализовать / десериализовать.
-description