Objective-C 工程中使用 Swift文件

  1. 新建一个*.swift 文件

  2. 根据XCode提示或手动生成ProjectName-Bridging-Header.h文件

  3. 配置工程 PROJECT -> Build Settings

    Defines Module : NO
    Embedded Content Contains Swift : NO
    Install Objective-C Compatibility Header : YES
    Objective-C Bridging Header : ProjectName-Bridging-Header.h
    
  4. 在新建的类class前面加上@objc如下:

    @objc class LBCollaAddFileVC: UIViewController {
       override func viewDidLoad() {
          super.viewDidLoad()
       }
    }
    
  5. 在需要使用该.Swift文件的.h文件引入 #import "LinkPortal-Swift.h" 文件,这样就可以使用工程ProjectName module 下的所有Swift文件了

注意是引入 #import "LinkPortal-Swift.h" 文件,不是#import "*.swift"文件

  1. *.Swift文件中使用Pods中的第三方库,在ProjectName-Bridging-Header.h文件中引入对应的文件,如引入Masonry :#import <Masonry/Masonry.h>即可在同一个ProjectName module下所有*.Swift文件都可以作swift语法使用Masonry的代码。

同一个App Target中引入代码:

Import into Swift Import into Objective-C
Swift code No import statement #import "ProductModuleName->Swift.h"
Objective-C code No import statement; Objective-C bridging header required #import "Header.h"

不同语言引入Frameworks

Import into Swift Import into Objective-C
Any language framework import FrameworkName @import FrameworkName;

�参考资料:

官方资料-原理

官方资料-代码

简书-Objective-C和Swift混编的一些经验

Using Swift with Cocoa and Objective-C中文手册

Can't use Swift classes inside Objective-C

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容