У меня возникли проблемы с использованием Swift в рамках ObjC в iOS. В моей структуре есть код Objective-C, из которого я хочу вызвать код Swift.
Я думаю, что создал мост правильно, я покажу ниже, что я сделал.
MySwiftFile.swift
:
open class MySwiftFile: NSObject {
var varDummy : RandomType? = nil
open func setupDummy(param1 : RandomType1) {
varDummy = RandomType(p: param1)
}
}
MyObjCFile.m
:
@class MySwiftFile;
#import "MyFramework/MyFramework-Swift.h"
@interface A : NSObject<...>
@property(atomic) MySwiftFile *mySwiftFile;
.....
@end
@implementation Aclass
......
@end
@interface B ()
....
@property(readonly, nonatomic) A *refA;
@end
@implementation B
....
- (void)methodCalledSomewhere:(RandomType1 *)type {
....
refA.mySwiftFile = [[MySwiftFile alloc] init];
[refA.mySwiftFile setupDummy: type]; <====THIS LINE PRODUCES THE ERROR
}
....
Подводя итог, я хочу инициализировать свойство и вызвать функцию объекта Swift из кода ObjC. Xcode, похоже, распознает MySwiftFile как допустимый тип, но почему он не позволяет мне вызывать метод setupDummy?
Ошибок 2:
- Отсутствие видимого @interface для «MySwiftFile» объявляет селектор «setupDummy:»
- Отсутствие видимого @interface для MySwiftFile объявляет селектор setupDummy.
RandomType1
вероятно недоступен изObjC
. - person user28434'mstep   schedule 01.07.2020MySwiftFile
не подвергается воздействию среды выполнения Obj-C. Найдите@objc
,@objcMembers
, ... Я не могу найти лучший ответ, чтобы пометить это как дубликат, но их много. - person zrzka   schedule 01.07.2020@objc
или@objcMembers
. Возникает та же ошибка: нет видимого @interface для «MySwiftFile», объявляет селектор «setupDummy:» - person fff   schedule 01.07.2020