Скажем, a имеет Superclass и экземпляр этого класса superclassObject.
Я создаю производную ClassA.
Как я могу создать (инициализировать) объект classAObject производного класса таким образом, чтобы все унаследованные поля были равны единицам superclassObject?
Конечно, я могу перебирать все поля и вручную копировать значения, такие как classAObject.property = [superclassObject.property copy]. Но проблема с этим подходом заключается в том, что я могу не знать (или иметь доступ) все ivars/свойства суперкласса.
Есть ли более простой (и более общий) способ?
Кажется, что я пропустил что-то действительно основное...
Я пытаюсь сделать это, потому что я получил уже инициализированный UIView (с фреймом, цветом фона, маской авторезистки и т.д.), и я хочу заменить его своим пользовательским представлением с теми же параметрами.
Обновление 1
Я нашел этот вопрос, и ответ там говорит, что он
обычно не поддерживается ни на одном языке OO
Однако
В Objective-C в некоторых случаях возможно
Хорошо, если он поддерживает не, что мне делать? Если он поддерживает , как я могу это достичь?
Обновление 2
Кажется, я нашел решение для моего конкретного случая этой общей проблемы, которое я буду тестировать и сообщать об этом завтра.
Однако это привело меня к другой идее: что, если я использую NSCoder для кодирования superclassObject (если он реализует <NSCoding>, конечно), а затем вызывает [[ClassA alloc] initWithCoder:coder] с помощью кодера, который знает данные из закодированного superclassObject? Отказ от ответственности: Ну, я не знаком с концепциями кодирования (или даже совсем не с ними), поэтому последнее предложение может быть абсурдным.