У меня есть класс Objective-C что-то вроде:
@interface MyClass: NSObject { }
- (MyObject *)coolMethod;
@end
@implementation MyClass
- (MyObject *)coolMethod {
return [self doCoolStuff];
}
@end
... и расширение Swift что-то вроде:
extension MyClass {
@objc func addedMethodInSwift() {
let coolObj = coolMethod() // <<<< compiler error - method not found
}
}
Код не будет компилироваться, потому что компиляторне удается найти реализацию coolMethod()
, однако некоторые другие методы из класса Objective-C можно вызывать из расширения Swift.
Я проверил, и файл заголовка Objective-C включен в заголовок моста проектатак что это должно быть видно Свифту.Данный метод определенно виден в заголовочном файле.
Почему нельзя coolMethod()
вызывать из расширения Swift?