如何在不公开 swift 的情况下构建 iOS 框架(oc + swift)?

时间:2021-07-20 16:41:37

标签: ios swift hybrid

我使用 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 但不要公开它。我认为它在框架目标方面有点特殊。

谢谢。

0 个答案:

没有答案