我使用 swift 和 Objective-C 混合创建了一个框架目标。代码在这里:
@interface MyPublicOC : NSObject
- (void)helloOC;
@end
#import "MyPublicOC.h"
#import <FrameworkTest/FrameworkTest-Swift.h>
@implementation MyPublicOC
- (void)helloOC {
NSLog(@"hello oc");
[MySwiftClass hi];
}
@end
import Foundation
@objc class MySwiftClass: NSObject {
@objc static func hi() {
print("private hi~")
}
}
所有这些代码都在 FrameworkTest.framework 中。但是,它构建失败,因为“使用未声明的标识符‘MySwiftClass’”。当我转到文件 MySwiftClass
的代码。这意味着 MySwiftClass
brige 失败了!但是,当我将 MySwiftClass
标记为 @objc public 时,它运行良好!这不是我想要的,因为我不t want to open
MySwiftClass`。
我的问题是将 MySwiftClass 桥接到 OC 但不要公开它。我认为它在框架目标方面有点特殊。
谢谢。