Я хочу реализовать что-то вроде "registerClassForAction". Для этой цели я определил протокол:
@objc protocol TestProt {
func testMe() -> String
}
Сделайте объявление класса:
class TestClass: NSObject, TestProt {
func testMe() -> String {
return "test"
}
}
Я определяю функцию для регистрации объекта в другом классе:
func registerClassForAction(aClass: AnyClass) { ... }
Переключение на REPL, я бы смоделировал метод регистрации:
let aClass: AnyClass = TestClass.classForCoder() //or .self
let tClass = aClass as NSObject.Type
let tInst = tClass() as TestProt
tInst.testMe()
В настоящее время это работает, но есть ли другой способ создать экземпляр tClass, кроме
let tClass = aClass as NSObject.Type
Причина для запроса, я хотел бы изучить возможность избавиться от NSObject, чтобы мой TestClass не наследовал от NSObject. Было рассмотрено делегирование, но я хотел бы контролировать время жизни tInst и иметь возможность отключить его в определенный момент времени.
спасибо за помощь
Рон