编程技术记录

世界你好!

默认创建的使用Swift语言编写的framework是没有头文件的,如果另一个使用Objective-C语言编写的target想用引入swift framework,则需要在swift framework的工程上打开一些配置

同时使用public 和 @objc标记

要给Objective-C暴露swift编写的api,则需要使用public 和 @objc标记

@objc public class MySwiftClass: NSObject {
    @objc public func doSomething() {
        print("Doing something in Swift")
    }
}

生成 Objective-C 兼容头文件

Swift Framework 的 Build Settings 中:

  • Defines Module 设置为 YES。
  • Install Generated Header 设置为 YES。
    这会生成一个 FrameworkName-Swift.h 头文件,包含 Swift 代码的 Objective-C 接口。

在 Objective-C 项目中导入导入 Swift Framework 的头文件

#import <FrameworkName/FrameworkName-Swift.h>

MySwiftClass *swiftObject = [[MySwiftClass alloc] init];
[swiftObject doSomething];

发表回复

© Beli. All Rights Reserved.