問題描述:
最近在接入某個公司的庫時乘盼,他們提供自己的git升熊,使用cocoapods集成他們的sdk,發(fā)現(xiàn)有個問題:某個類的.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無法識別這個分類中的方法粹胯,想調(diào)用該方法的時候蓖柔,會提示無此方法辰企。
解決方法:
- 新建oc橋接頭
(參考:http://www.reibang.com/p/1f084b2f4a8d) - 橋接頭中加入import該擴展頭文件:
#import "TestClass+Internal.h"
-
出現(xiàn)新問題:
image.png
xcode提示找不到該頭文件
解決:
工程Build Settings中搜索:header search:
修改User Header Search Paths為$(SRCROOT),并修改為recursive
image.png
再build况鸣,就可以調(diào)用該方法了
理解:
加了設置之后牢贸,會遞歸的去搜索工程下的頭文件,就可以找到橋接文件中引入的第三方庫的頭文件镐捧,但是因為要去遞歸搜索潜索,之后的編譯速度就會變慢,尤其是工程越來越大懂酱,速度就越明顯