关于OC引入Swift pod库遇到的问题

掘金地址:https://juejin.im/post/5dbc0975f265da4d4b5fe5e0
由于公司要实现线状图, 我最终选择了Charts这个第三方控件, 然而这个库只有swift版本.
我平时开发就用OC, 那只能混编, 在此记录下混编时遇到的问题
首先修改Podfile,
增加pod 'Charts'
然后pod install
这样做还不行, 需要在Podfile中加入
use_frameworks!, 这个很重要
然后pod install
也就是最终结果是

platform :ios, '10.0'
use_frameworks!
#个别需要用到它,比如reactiveCocoa
target 'HDMI' do
    pod 'AFNetworking'     
    pod 'MBProgressHUD', '~> 1.0.0'
    pod 'UMengAnalytics'
    pod 'SAMKeychain'
    pod 'FMDB', '~> 2.6.2'
    pod 'MJExtension', '~> 3.0.13'
    pod 'BearSkill'
    pod 'Masonry'
    pod 'IQKeyboardManager'
#    pod 'MobileVLCKit', '~> 3.2.1'
#    pod 'GPAC4iOS'
#    pod 'TS2MP4'
    pod 'MWPhotoBrowser'
    pod 'Charts'
end

然而这样做还不行, OC与swift兼容还需要桥接文件
项目工程名-Bridging-Header.h
怎么产生这个文件呢, 不要自己去生成这个文件
最好是通过File->New->File->Swift File创建swift文件
这样做的话, 项目就会自动生成
项目工程名-Bridging-Header.h文件
并且在build setting中会多出


015A8C7C-1A70-43BA-8F6B-198EB8739728.png

为什么不要自己去生成这个文件呢? 原因在于自己生成的这个文件, xcode无法自动将生成$(SWIFT_MODULE_NAME)-Swift.h, 也就是图中的Objective-C Generated Interface Header Name这个选项
有了这个选项, 那么接下来在使用pod库中的swift文件都可以直接import
比如Charts

import

在Charts后加一个-Swift.h即可

对了中途混编的时候还遇到的问题

1.Showing Recent Issues "std::__1::basic_ostream >::put(char)", referenced from:

解决方案就是找到任意.m文件改成.mm即可

你可能感兴趣的:(关于OC引入Swift pod库遇到的问题)