2015-02-19 3 views
-2

В Swift я пытаюсь создать подклассы класса, который добавит свойства и методы, специфичные для определенных экземпляров класса. Я хотел бы инициализировать экземпляр подкласса с экземпляром класса, так что свойства класса для экземпляра подкласса фактически относятся к экземпляру класса, из которого он был инициализирован. Моя цель - установить свойство класса в экземпляре подкласса и установить его также в экземпляре класса, из которого он был инициализирован. Я не смог найти способ создать инициализатор, который выполнит это, даже если бы я установил все свойства класса одинаковыми для экземпляра подкласса и экземпляра класса. Единственный способ, которым я смог это сделать, - добавить переменную в подкласс и установить ее в экземпляр класса, но это громоздко. Есть ли способ сделать это?Swift: Могу ли я создать экземпляр подкласса со свойствами класса, ссылающимися на экземпляр класса?

ответ

0

Вам нужно добавить соответствующие инициализации, как это:

class A { 
    // ... 
} 
class B:A { 
    init(clone:A) { 
    // assign from the other object what needed 
    } 
} 
+0

Спасибо за быстрый ответ. Этот метод создает новый экземпляр класса в подклассе и не ссылается на исходный экземпляр класса. Установка свойства в подклассе не указывает, чтобы установить свойство в экземпляре класса originaal. – jbaraga

+0

Вы можете просто сохранить экземпляр 'clone' в новом экземпляре' B' как свойство (private). –

+0

Я никогда не мог заставить это работать, так как я попробовал новый экземпляр подкласса, не будет указывать на экземпляр суперкласса, из которого он был инициализирован. Я работал над этим, сохраняя var в моем подклассе и устанавливая его в экземпляр инициализации суперкласса. Это делает код немного менее простым, но он работает. – jbaraga

Смежные вопросы