--ByPass iOS集成
一、前言
项目中用到markdown解析,找了很多第三方库,重构了好几次都不能满足需求,后来用了ByPass这个SDK,通过调试完成了需求的实现,这里进行一下总结。
ByPass链接:https://github.com/Uncodin/bypass(根据需求选择不同的客户端Android&iOS)。
二、集成步骤
1、下载SDK,先通过github链接下载SDK到本地。
2、导入SDK到项目中
1> 先把SDK中ios文件夹拷贝到自己的工程文件夹里面,保证路径的一致性。
2> 打开自己的工程,导入bypass项目,这里是要导入项目,而不是一般的导入文件夹。Xcode9.0以后导入文件最好不要拖拽,容易出现bug,所以通过File->Add files to xxx->Bypass.xcodeproj(在ios->Bypass文件夹下)。
3> 选择自己的项目->Build
Phases->Target Dependencies,点击“+”号,选择Bypass
4> 选择自己的项目->Build
Phases->Link Binary With Libraries,添加一些库文件。libBypass.a,
CoreGraphics.framework, CoreText.framework, Foundation.framework,
QuartzCore.framework, UIKit.framework。
5> 选择自己的项目->BuildSettings
Other Linker Flags: 添加-ObjC
Header Search Paths: 添加bypass路径$(SRCROOT)//Bypass/Bypass
当前项目示例:$(SRCROOT)/QiaoBooks/Bypass/Bypass
C++ Standard Library: libc++ (LLVM C++ standard librarywith C++11 suport)
综上几个步骤之后SDK算是导入成功了,但是可能会存在文件找不到的问题:
1> bypass.h file not found。这个可以通过如下步骤解决:定位到自己的项目->Build Phases->Link Binary With Libraries,点击“+”号->Add Other, 从Bypass->Bypass文件夹中选择bypass.h添加到项目中即可。
2> 提示element.h等库文件丢失
到原下载的文件夹中拷贝两个内容到项目Bypass文件夹下:
然后通过Add files to
xxx分别拷贝两个文件夹的内容到工程的如下路径中:
1> 第2个问题导入库文件后可能会有重复文件的报错,查看报错的原因,删除多余的库文件即可。一般是Soldout下的文件会重复导入,比对后进行删除。
三、SDK使用
SDK导入完,运行一下如果不报错,就可以开始调用了。
1. 在需要用到markdown解析的文件中,导入“Bypass.h”头文件。
2. 使用时控件可以直接用UILabel也可以用UITextView,我这里的需求需要用UITextView,代码如下:
其中BPAttributedStringConverter的init方法是由于项目需要,自己本地做了部分修改,如果没有其他需求,直接用init方法就可以了。