Swift 3中使用FMDB遇到的問(wèn)題與解決方法
本文主要給大家介紹了關(guān)于在Swift 3中使用FMDB遇到的問(wèn)題與解決方法,分享出來(lái)供大家參考學(xué)習(xí),下面來(lái)一起看看詳細(xì)的介紹:
狀況
OC項(xiàng)目轉(zhuǎn)Swift,打算繼續(xù)使用FMDB。Cocoapods進(jìn)來(lái)后,在橋接文件 "XXX-Bridging-Header.h" 中寫入#import "FMDB.h"。
編譯報(bào)錯(cuò),如下圖所示。
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)是因?yàn)樵赑odfile用了use_frameworks!導(dǎo)致的。之前OC的項(xiàng)目沒(méi)有加這個(gè)屬性。
在Cocoapods 里使用use_frameworks!的話,是通過(guò)frameworks這個(gè)方式來(lái)管理pod的代碼。不配置的話,則采用static libraries方式來(lái)管理。這也是之前OC項(xiàng)目里的方式,在需要調(diào)用的地方直接 #import "FMDB.h"即可。
解決方法
在橋接文件 "XXX-Bridging-Header.h" 中的引用方式改變成#import <FMDB/FMDB.h>
在需要調(diào)用的類里加上import FMDB
,編譯成功。
示例代碼
之前Cocoapods用static libraries方式的話是不需要在類里import FMDB的。但如果采用use_frameworks!屬性的話,調(diào)用時(shí)不引用會(huì)報(bào)如下錯(cuò)誤。
參考資料
cocoapods use_frameworks的問(wèn)題
Swift and Objective-C in the Same Project
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
swift相冊(cè)相機(jī)的權(quán)限處理示例詳解
在iOS7以后要打開(kāi)手機(jī)攝像頭或者相冊(cè)的話都需要權(quán)限,在iOS9中更是更新了相冊(cè)相關(guān)api的調(diào)用,那么下面這篇文章主要給大家介紹了關(guān)于swift相冊(cè)相機(jī)權(quán)限處理的相關(guān)資料,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下。2017-10-10使用Swift實(shí)現(xiàn)iOS App中解析XML格式數(shù)據(jù)的教程
這篇文章主要介紹了使用Swift實(shí)現(xiàn)iOS App中解析XML格式數(shù)據(jù)的教程,講到了iOS中提供的NSXMLParser和NSXMLParserDelegate兩個(gè)API的用法,需要的朋友可以參考下2016-04-04Swift4使用GCD實(shí)現(xiàn)計(jì)時(shí)器
這篇文章主要為大家詳細(xì)介紹了Swift4使用GCD實(shí)現(xiàn)計(jì)時(shí)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03