Это мой интерфейс objc:
@interface MobileKeysController : NSObject <MobileKeysManagerDelegate>
- (id) initWithLogger:(Loggable *)logger; //issue: Expected a type
- (void) didPressRegistrationButton:(NSString *)code;
@end
У меня также есть личный интерфейс:
@interface MobileKeysController ()
@property(nonatomic) Loggable *logger;
@end
и пользовательский init:
- (id)initWithLogger: (Loggable *) logger_ {
self = [super init];
// how can I assign it here from an init?
return self;
}
Это мойОпределение Swift:
protocol Loggable: class {
func log(_ category: FirebaseCategory, _ type: FirebaseEventType, _ dataProvider: FirebaseEventDataProvider)
}
@objc class FirebaseLogger: NSObject, Loggable {
// MARK: - Loggable
func log(_ category: FirebaseCategory, _ type: FirebaseEventType, _ dataProvider: FirebaseEventDataProvider) {
log(category.rawValue, type.value, dataProvider.parameters)
}
}
И мне нужно использовать его из файла Swift, например:
let logger = FirebaseLogger()
return MobileKeysController(logger: logger)