之前的工程代碼都是用OC的,一直想轉成swift的,但是感覺全轉不太靠譜,所以決定一部分一部分慢慢轉,所以需要用到OC和Swift代碼混編。
1.創(chuàng)建swift代碼。
@objc public class XX : XX
{
}
@objc ,public 最好都加上,然后子類也加上比如繼承NSObject
然后就會問你是否創(chuàng)建header文件

選擇是就行了,然后自動創(chuàng)建一個$(Project_Name)-Bridging-Header.h的文件,$(Project_Name)默認是工程名字,但是也可以修改。如果你選擇了否或者不小心把這個文件刪了怎么辦了。
第一種就是:在SWIFT_OBJC_BRIDGING_HEADER將其選項刪除,然后新建的時候就會又提示讓你建立。

第二種就是:建立一個新的文件然后在SWIFT_OBJC_BRIDGING_HEADER,將路徑輸入進去。
這個文件的作用就是當swift需要使用OC代碼的時候在SWIFT_OBJC_BRIDGING_HEADER文件將OC的頭文件導入進去。
2.xcode自動幫你創(chuàng)建了$(Project_Name)-Swift.h文件
這個自動幫你創(chuàng)建好了。然后你在OC類里面#import這個文件以后就能直接使用Swift的代碼了。
3.工程的一些配置
Packaging下面的Defines Module設置為YES
Swift Compiler - Code Generation下面的Objective-C Bridging Header,Objective-C Generated Interface Header Name比較重要的兩個路徑配置選項
一個莫名其妙的錯誤:
error:opening import file for module 'Swift':Not a directory
我只把Framework Search Path里面的libxml2去了就編譯通過了。stackoverflow里面的完整答案是:
1:簡化這個Framework Search Path只留下
$(inherited)
$(SRCROOT)
2:將libxml2去了。