@objc public class A: NSObject
{
public func getSomething() -> Something
{
return Something()
}
}
@objc public class B: A{
override public func getSomething() -> SomethingGood
{
return SomethingGood()
}
}
@objc public class C: A{
...
}
@objc public class Something: NSObject{
var name: String=“”
}
@objc public class SomethingGood: Something{
var type_id: Int = 0
}
Компилятор Swift показывает несовместимые типы для функции переопределения класса B.Как мне реализовать вышеизложенное?Я пытался использовать Generics, но они не доступны для разработчика Objective-C после создания библиотеки.
Я хочу использовать:
A.getSomething () и C.getSomething () для возврата объекта Something
и B.getSomething () ввернуть объект SomethingGood.
И я не хочу получать две одинаковые именованные функции func getSomething () для B с двумя разными типами возвращаемых значений.
Есть идеи?
Код используется в статической библиотеке, написанной на Swift.Как только библиотека скомпилирована, она должна быть доступна как для swift, так и для target-c.