gpt4 book ai didi

ios - 当我不能弱链接时如何测试类的存在

转载 作者:可可西里 更新时间:2023-11-01 05:03:59 25 4
gpt4 key购买 nike

我正在编写一个旨在可重用的类,但我包含了对一个类的调用,该类在编译时可能并不总是可用。

更具体地说,我正在使用 Flurry 分析,并且我想包含对此的调用 - 但并不是这个模块可能包含在其中的每个项目都可以访问 Flurry 库 - 我只是希望它不在这些位中编译这些情况下的代码。该模块将作为源代码分发,因此只需在编译时进行测试。

到目前为止我已经尝试过:

if([Flurry class]){
[Flurry logEvent:@"Blah"];
}

这失败了“使用未定义的标识符”——Flurry 没有在任何地方定义,因为没有对库的弱引用

接下来尝试:

Class flurryClass = NSClassFromString(@"Flurry");
if(flurryClass){
[flurryClass logEvent:@"Blah"];
}

这失败了,因为“选择器 logEvent 没有已知的类方法”

所以我似乎被卡住了,因为第一种方法依赖于弱链接一个可能无法用于弱链接的库!我假设的第二种方法失败了,因为我在当前没有定义的类上调用类方法,所以编译器会提示?有没有任何人能想到的解决方案?

最佳答案

你必须在整个过程中使用反射。将您的代码更改为:

Class flurryClass = NSClassFromString(@"Flurry");
if(flurryClass){
[flurryClass performSelector:@selector(logEvent:) withObject:@"Blah"];
}

关于ios - 当我不能弱链接时如何测试类的存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15257002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com