掘金地址: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中会多出

为什么不要自己去生成这个文件呢? 原因在于自己生成的这个文件, xcode无法自动将生成$(SWIFT_MODULE_NAME)-Swift.h, 也就是图中的Objective-C Generated Interface Header Name这个选项
有了这个选项, 那么接下来在使用pod库中的swift文件都可以直接import
比如Charts
import <Charts/Charts-Swift.h>
在Charts后加一个-Swift.h即可
对了中途混编的时候还遇到的问题
1.Showing Recent Issues "std::__1::basic_ostream<char, std::__1::char_traits<char> >::put(char)", referenced from:
解决方案就是找到任意.m文件改成.mm即可
网友评论