gpt4 book ai didi

ios - 将 "incompatible pointer types sending ' subclassA' 抑制为 'subclassB' 类型的参数 "clang

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:49:43 26 4
gpt4 key购买 nike

Xcode 引发“不兼容的指针类型将‘subclassA’发送到‘subclassB’类型的参数”警告。用 clang 编译。

在出现警告的情况下,我使用一个

[subclassA isKindOfClass: [subclassB class]] ... 

确保兼容的指针使用。我想要这样的东西:

    #pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
// warning-raising code
#pragma clang diagnostic pop

但对于提出适当的警告。 IE。忽略指定诊断的 clang 标志是什么?

感谢您的宝贵时间。

最佳答案

如果我没理解错的话,你是在说类似的话

if ([subclassA isKindOfClass:[subclassB class]]) {
[foo someMethodThatWantsSubclassB:subclassA];
}

这里的修复是在成功的类型断言之后转换subclassA。你的情况有点奇怪,因为你动态地确定 subclassB 的类型而不是测试静态类型,但是在方法 -someMethodThatWantsSubclassB: 你肯定知道涉及类型,所以你会写类似的东西

if ([subclassA isKindOfClass:[subclassB class]]) {
[foo someMethodThatWantsSubclassB:(BClass)subclassA];
}

如果你有一些非常奇怪的设置,你实际上不知道 subclassB 的静态类型(虽然我无法想象这里的情况)你可以简单地转换为 (id ) 而不是摆脱警告:

if ([subclassA isKindOfClass:[subclassB class]]) {
[foo someMethodThatWantsSubclassB:(id)subclassA];
}

关于ios - 将 "incompatible pointer types sending ' subclassA' 抑制为 'subclassB' 类型的参数 "clang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11854883/

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