在子类中,我将属性的类型重写为该属性的子类,其作用如下:
ClassA: NSObject
@property (nonatomic) NSValue *value;
ClassB : ClassA
@property (nonatomic) NSNumber *value;
但是,我发现如果ClassA
没有#import
NSNumber
课程,那么ClassB
就会收到以下形式的警告:Property type 'NSNumber *' is incompatible with type 'NSValue *' inherited from 'ClassA'
我不希望ClassA
中有大量不必要的导入。如何覆盖Clang关于此的警告?我知道语法是:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-somethingGoesHere"
#pragma clang diagnostic pop
但我不知道我应该通过什么旗帜。有没有一个地方我可以查看通过该警告的标志?我引用了Clang User manual并尝试使用"-w"
标志禁用该行的所有警告,但这不起作用。
答案 0 :(得分:1)
我遇到了与您的问题略有相似的问题 希望这个答案对你也有用。 question
现在我得到了忽略警告的解决方案。希望这个解决方案对你也有帮助。
答案 1 :(得分:0)
您可以在Xcode构建日志活动中显示警告并找到clang标志。试试这个:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-property-type"
...
#pragma clang diagnostic pop
答案 2 :(得分:-1)
您不应覆盖子类中的属性。我理解为什么你认为你应该这样,但它确实不是正确的设计。将第二个命名为其他内容,例如“numberValue”。