gpt4 book ai didi

Objective-C - 避免编译错误?

转载 作者:行者123 更新时间:2023-12-02 10:55:18 24 4
gpt4 key购买 nike

有没有办法抑制编译错误?
在这种情况下我不能使用协议(protocol),因为我尝试使用的类在外部库中。我无法控制代码

if (myClass && [[myClass class] respondsToSelector:@selector(getSomething)])
{
// Compile error on the line below
MyResult *result = [myClass getSomething];

// Also tried
MyResult *result = [(id)myClass getSomething];

}

编辑:
错误:选择器没有已知的类方法

最佳答案

当您在无类型的 Objective-C 对象上使用方法时,编译器会尝试根据其选择器猜测您尝试调用的方法,因为它需要根据返回值生成不同的代码。生成代码的方式也不同,具体取决于您是否使用 ARC,编译器需要相应更改。

如果没有 ARC,编译器将假定返回类型为 id对于它不知道的任何选择器,都会产生警告。使用 ARC,它变成了一个硬错误,因为编译器不想冒险进行内存管理。

这就是为什么您至少需要告诉编译器该方法的一个现有声明。

关于Objective-C - 避免编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14342469/

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