我有一个使用 Cocoapods (ECSlidingViewController) 安装的库。在代码中,使用 -isKindOfClass 进行比较。在调试器中,打印描述和一切都表明这个变量是一个 ECSlidingViewController。但是,当代码运行时,它返回 NO。
目前我有我的 podfile 将库与主要目标和测试目标链接起来。如果我不这样做,测试目标将找不到库。
我有一个使用 Cocoapods (ECSlidingViewController) 安装的库。在代码中,使用 -isKindOfClass 进行比较。在调试器中,打印描述和一切都表明这个变量是一个 ECSlidingViewController。但是,当代码运行时,它返回 NO。
目前我有我的 podfile 将库与主要目标和测试目标链接起来。如果我不这样做,测试目标将找不到库。
这个答案为我解决了https://stackoverflow.com/a/27165120/2777364。
简而言之,您不应该将 pod 与您的测试目标链接,您应该为测试目标创建与至少一个其他 pod 的单独链接,以强制生成配置集。
target 'MainTarget' do
pod 'PodYouTryToTest'
end
target 'Tests' do
pod 'AtLeastOneOtherPod'
end
上面的答案是解决这个问题的“正确方法”。作为一种快速解决方法,我可以提出一种方法:
Class getBundleDependentClass(Class class) {
return NSClassFromString(NSStringFromClass(class));
}