美文网首页
swift使用pod导入时,扩展/类别的导入问题

swift使用pod导入时,扩展/类别的导入问题

作者: 叫我逗Bee | 来源:发表于2019-06-27 18:44 被阅读0次

    问题描述:

    最近在接入某个公司的库时,他们提供自己的git,使用cocoapods集成他们的sdk,发现有个问题:某个类的.m中有个私有初始化方法:

    - (instancetype)initWithJSONDictionary:(NSDictionary *)dictionary error:(NSError *__autoreleasing _Nullable *)error
    

    但是又通过写了一个头文件AylaSchedule+Internal.h写了一个该类的扩展:

    @interface AylaSchedule (Internal)
    
    - (instancetype)initWithJSONDictionary:(NSDictionary *)dictionary error:(NSError *__autoreleasing _Nullable *)error;
    
    @end
    

    将该方法暴露出来,但是通过pod集成的库,可是使用import来导入module,但是该module无法识别这个分类中的方法,想调用该方法的时候,会提示无此方法。

    解决方法:

    1. 新建oc桥接头
      (参考:https://www.jianshu.com/p/1f084b2f4a8d
    2. 桥接头中加入import该扩展头文件:
    #import "TestClass+Internal.h"
    
    1. 出现新问题:


      image.png

      xcode提示找不到该头文件

    解决:

    工程Build Settings中搜索:header search:
    修改User Header Search Paths为$(SRCROOT),并修改为recursive


    image.png

    再build,就可以调用该方法了

    理解:

    加了设置之后,会递归的去搜索工程下的头文件,就可以找到桥接文件中引入的第三方库的头文件,但是因为要去递归搜索,之后的编译速度就会变慢,尤其是工程越来越大,速度就越明显

    相关文章

      网友评论

          本文标题:swift使用pod导入时,扩展/类别的导入问题

          本文链接:https://www.haomeiwen.com/subject/secdcctx.html