前言:最近公司有兩個項目需要合并在一起晴竞,一個是OC開發(fā)政基,另一個是Swift開發(fā)充择。大致說一下流程:
1. buildSetting -> defines module 設(shè)置為 yes
2.然后檢查一下 buildSetting -> Product Module Name 是否為項目名稱(一般都是)
3.創(chuàng)建橋接文件(OC項目中創(chuàng)建Swift文件時會自動提醒闽晦,如果當(dāng)時沒有創(chuàng)建可以手動創(chuàng)建)
-
選擇head file
名稱命名一般為:"項目名-bridging-Header.h"
- 然后 buildSetting -> Objective-C Bridging Heading 點開,將創(chuàng)建的橋接文件拖過去就好了(此時地址為絕對地址本今,可以把地址前面的部分路徑替換為 $(PROJECT_DIR)拆座,這樣就是相對路徑了)
- 將Swift中需要引用的OC文件的頭文件引入就好了
4在需要引用Swift文件的OC文件中,引用一個系統(tǒng)隱式創(chuàng)建的頭文件冠息。"項目名-Swift.h"
此時就能愉快地引用Swift文件了挪凑。
或者在直接在整個類文件前加@objcMembers,這種方式整個類文件中的方法都可以在OC文件中被調(diào)用
友情贈送:
- 如果Swift文件中需要用到pods管理的庫,需要把podfile中use_frameworks!注釋打開逛艰。
- 如果報 duplicate interface definition for class ‘xxxx’錯誤躏碳,但是經(jīng)排查沒有重復(fù)導(dǎo)入。那么你可以試試散怖,將引入方式由 #import "xxx.h" 改為 #import <xxx.h/xxx.h>
本篇文章暫時寫這么多菇绵,后續(xù)踩到更多的坑肄渗,再來更新。