Я работаю над приложением iOS, написанным в Objective C, которое имеет прикрепленный класс, написанный в Swift. Когда я пытаюсь вызвать a в моем Obj C AppDelegate.m, я не получаю никаких ошибок, но обратный вызов ответа никогда не срабатывает.Невозможно вызвать метод из класса быстрого в Objective C
Мой ObjC имеет следующие методы:
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply {
NSString *success =[ApiController handleCall];
//NSString *success =[self hello]; // This works if you swap it with the above method
//NSString *success = @"hello"; // when uncommented this also works.
NSDictionary *dict = @{@"status" : success};
reply(dict);
}
-(NSString *)hello{
return @"hello";
}
NSString *success = [SwiftClass swiftMethod];
Мой быстры класс выглядит следующим образом:
@objc class SwiftClass {
@objc func swiftMethod()->NSString{
return "it works!"
}
}
В дополнение к выше коде, я убедился включите #import "ProjectName-Swift.h"
, а также создайте заголовок моста для быстрого кода.
Я ничего не пропустил?
Ваш код не ясно - Ваш вызов ' swiftMethod' фактически внутри метода? Вы называете его экземпляром 'SwiftClass' или вы буквально называете' [SwiftClass swiftMethod] '? Последнее не будет работать, потому что 'swiftMethod' не является методом типа. – Paulw11
«У меня нет ошибок, но код просто». ??? –