如何解决从Objective-C使用Swift ObservableObject时出现链接器错误
我正在尝试使用Objective-c中的Swift类(就像我对其他许多类所做的那样),并且出现以下错误。
未定义符号: OBJC_CLASS $ __ TtC9FileCloud18browserCoordinator
问题似乎是该特定类符合Swift协议ObservableObject
:
@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;
解决方法
这里经过测试和演示(使用Xcode 12 / iOS 14)
快捷键:
import SwiftUI
import Combine
@objcMembers
public class BrowserCoordinator: NSObject,ObservableObject
{
public func go() {
print(">> test")
}
}
Objective-C:
#import "MyViewController.h"
#import "TestBacktoObjC-Swift.h"
@interface MyViewController ()
@end
@implementation MyViewController
- (void)viewDidLoad {
[super viewDidLoad];
BrowserCoordinator* browser = BrowserCoordinator.new;
[browser go];
}
@end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。