Поэтому у меня есть два класса Base
и More
, который выглядит как этогометод, который возвращает объект типа, который был вызван из
class Base:NSObject {
class func whatsMineType() -> Base {
return Base()
}
}
class More:Base {
}
И если я называю метод Base.whatsMineType()
и More.whatsMineType()
оба они дали мне объект типа Base
. Есть ли способ изменить метод whatsMineType()
, не переопределяя его в Base
, чтобы он возвращал объект типа, который вызывался?
Моя цель состоит в том, что Base.whatsMineType()
будет возвращать Base
объект типа и More.whatsMineType()
будет возвращать More
объект типа.
Я пробовал с родовыми типами, но у меня нет большого опыта с ними. Любые предложения будут оценены по достоинству.
Редактировать
Как я пытался объяснить, что это не главное найти правильный тип, а скорее, как создать экземпляр объекта с правильным.
Почему бы вам не переопределить WhatsMineType в More? – WMios
Поскольку у меня гораздо больше типов, которые расширяют 'Base', и я не хочу переопределять' whatsMineType() 'в каждом из них. Вот почему 'Base' для. –
Возможный дубликат [Как узнать тип объекта (в Swift)?] (Http://stackoverflow.com/questions/24101450/how-do-you-find-out-the-type-of- a-object-in-swift) – WMios