本文主要給大家介紹了關于在Swift 3中使用FMDB遇到的問題與解決方法,分享出來供大家參考學習,下面來一起看看詳細的介紹:
狀況
OC項目轉Swift,打算繼續使用FMDB。Cocoapods進來后,在橋接文件 "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!
原因
究其原因,發現是因為在Podfile用了use_frameworks!導致的。之前OC的項目沒有加這個屬性。
在Cocoapods 里使用use_frameworks!的話,是通過frameworks這個方式來管理pod的代碼。不配置的話,則采用static libraries方式來管理。這也是之前OC項目里的方式,在需要調用的地方直接 #import "FMDB.h"即可。
解決方法
在橋接文件 "XXX-Bridging-Header.h" 中的引用方式改變成#import <FMDB/FMDB.h>
在需要調用的類里加上import FMDB
,編譯成功。
示例代碼
之前Cocoapods用static libraries方式的話是不需要在類里import FMDB的。但如果采用use_frameworks!屬性的話,調用時不引用會報如下錯誤。
參考資料
在xcode 6.4 中使用swift和object-c混合編程,同時通過cocoapods進行管理的一些問題和解決辦法](http://blog.csdn.net/remote_roamer/article/details/47835347)
cocoapods use_frameworks的問題
Swift and Objective-C in the Same Project
總結
以上就是這篇文章的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對html5模板網的支持。