Swift Class Extension - нераспознанный селектор отправлен на экземпляр
При создании расширения класса для базового класса я получаю unrecognized selector sent to instance
при использовании следующего:
extension NSURLSessionDataTask: Taskable {
func isRunning() -> Bool {
return state == .Running
}
}
Ошибка:
[__NSCFLocalDataTask isRunning]: unrecognized selector sent to instance 0x7fa93bdc07d0
Я пытаюсь создать общий интерфейс задач, чтобы я мог использовать различные виды классов, такие как операции и задачи сессий, есть что-то, чего я здесь не хватает?
2 ответа
Многие из классов Какао являются "кластерами классов", что означает, что вы можете получить тот, который вы просили. NSCFLocalDataTask
является частным классом и похоже, что он не наследуется от NSURLSessionDataTask
, Попробуйте переместить ваше расширение в NSURLSessionTask
,
Почему это может произойти: свойства Objective C BOOL, начинающиеся с "is", могут обрабатываться по-разному. Может случиться так, что ваш func экспортируется в Objective-C как "рабочий" метод, а не как "isRunning".