狀況
OC項目轉(zhuǎn)Swift,打算繼續(xù)使用FMDB。Cocoapods進(jìn)來后,在橋接文件 "XXX-Bridging-Header.h" 中寫入#import "FMDB.h"
。編譯報錯,如下圖所示。
Cocoapods Podfile
platform :ios, '10.0' use_frameworks! targetsArray = ['HelloSwift'] targetsArray.each do |t| target t do pod 'FMDB/SQLCipher' pod 'Alamofire' end end inhibit_all_warnings!
原因
究其原因,發(fā)現(xiàn)是因為在Podfile用了use_frameworks!
導(dǎo)致的。之前OC的項目沒有加這個屬性。
在Cocoapods 里使用<code>use_frameworks!</code>的話,是通過frameworks這個方式來管理pod的代碼。不配置的話,則采用static libraries方式來管理。這也是之前OC項目里的方式,在需要調(diào)用的地方直接 <code>#import "FMDB.h"</code>即可。
解決方法
- 在橋接文件 "XXX-Bridging-Header.h" 中的引用方式改變成<code>#import <FMDB/FMDB.h></code>
- 在需要調(diào)用的類里加上<code>import FMDB</code>,編譯成功。
示例代碼
之前Cocoapods用static libraries方式的話是不需要在類里import FMDB
的。但如果采用use_frameworks!
屬性的話,調(diào)用時不引用會報如下錯誤。