简书地址:www.jianshu.com/p/0330e04fd… 由于公司要实现线状图, 我最终选择了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即可
对了中途混编的时候还遇到了一个
Showing Recent Issues "std::__1::basic_ostream<char, std::__1::char_traits >::put(char)", referenced from:
解决方案就是找到任意.m文件改成.mm即可