Ios 从Objective-C使用Swift ObserveObject时链接器错误
我试图使用Objective-c中的Swift类(正如我对许多其他类所做的那样),但有以下错误 未定义符号:OBJC_类$\uuu TtC9FileCloud18BrowserCoordinator 问题似乎是这个特定的类符合Swift协议Ios 从Objective-C使用Swift ObserveObject时链接器错误,ios,objective-c,swift,bridging-header,observableobject,Ios,Objective C,Swift,Bridging Header,Observableobject,我试图使用Objective-c中的Swift类(正如我对许多其他类所做的那样),但有以下错误 未定义符号:OBJC_类$\uuu TtC9FileCloud18BrowserCoordinator 问题似乎是这个特定的类符合Swift协议observegeObject: @available(iOS 13.0, *) @objcMembers class BrowserCoordinator: NSObject, ObservableObject { //... } 它正确地显示在生
observegeObject
:
@available(iOS 13.0, *)
@objcMembers
class BrowserCoordinator: NSObject, ObservableObject
{
//...
}
它正确地显示在生成的MyProject Swift.h
头文件中:
SWIFT_CLASS("_TtC9FileCloud18BrowserCoordinator") SWIFT_AVAILABILITY(ios,introduced=13.0)
@interface BrowserCoordinator : NSObject
//...
@end
当从Objective-C使用时,正确构建:
BrowserCoordinator* browser = BrowserCoordinator.new;
但是链接器失败了。这可能是苹果的bug吗?这里是经过测试和工作的演示(使用Xcode 12/iOS 14) 斯威夫特: 目标C:
BrowserCoordinator* browser = BrowserCoordinator.new;
刚刚用Xcode 11.7/iOS 13.7进行了测试-工作正常。
#import "MyViewController.h"
#import "TestBacktoObjC-Swift.h"
@interface MyViewController ()
@end
@implementation MyViewController
- (void)viewDidLoad {
[super viewDidLoad];
BrowserCoordinator* browser = BrowserCoordinator.new;
[browser go];
}
@end