Swift 3中使用FMDB遇到的问题与解决方法
本文主要给大家介绍了关于在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!属性的话,调用时不引用会报如下错误。

参考资料
Swift and Objective-C in the Same Project
总结
以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
相关文章
Swift 中的 Actors 使用及如何防止数据竞争问题(示例详解)
Swift中的Actors旨在完全解决数据竞争问题,但重要的是要明白,很可能还是会遇到数据竞争,本文将介绍Actors是如何工作的,以及你如何在你的项目中使用它们,感兴趣的朋友跟随小编一起看看吧2023-06-06
使用Swift实现iOScollectionView广告无限滚动效果(DEMO)
本文给大家分享使用Swift实现iOScollectionView广告无限滚动效果(DEMO),非常不错,具有一定的参考借鉴价值,感兴趣的朋友一起看看吧2016-11-11
Swift开发之使用UIRefreshControl实现下拉刷新数据及uirefreshcontrol使用
本文给大家介绍使用UIRefreshControl实现下拉刷新数据,及UIRefreshControl的使用步骤,对本文感兴趣的朋友一起学习吧2015-11-11


最新评论