我正在编写一个设计为可重用的类,但我已经包含了对编译时可能并不总是可用的类的调用。
更具体地说,我正在使用 Flurry 分析,并且我想包含对它的调用 - 但不是这个模块可能包含的每个项目都可以访问 Flurry 库 - 我只是希望它不会在这些代码中编译情况。该模块将作为源代码分发,因此只需在编译时进行测试。
到目前为止,我已经尝试过:
if([Flurry class]){
[Flurry logEvent:@"Blah"];
}
这失败了“使用未定义的标识符” - Flurry 没有在任何地方定义,因为没有对库的弱引用
所以接下来尝试:
Class flurryClass = NSClassFromString(@"Flurry");
if(flurryClass){
[flurryClass logEvent:@"Blah"];
}
这失败为“选择器 logEvent 没有已知的类方法”
所以我似乎被卡住了,因为第一种方法依赖于弱链接一个可能无法用于弱链接的库!我假设的第二种方法失败,因为我在当前没有定义的 Class 上调用 Class 方法,所以编译器会抱怨?有没有人能想到的解决方案?