4

サブクラスでは、プロパティのタイプをオーバーライドして、そのプロパティのサブクラスにします。これは次のように機能します。

ClassA: NSObject
@property (nonatomic) NSValue *value;

ClassB : ClassA
@property (nonatomic) NSNumber *value;

ただし、クラスではない場合、次ClassAの形式で警告が表示されることがわかりました。#importNSNumberClassBProperty 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"たが、うまくいきませんでした。

4

3 に答える 3

1

私はあなたの問題に少し似た問題に直面していましたが、この答えがあなたにも役立つことを願っています. 質問

そして今、私は警告を無視する解決策を得ました。このソリューションがあなたにも役立つことを願っています。

于 2014-05-28T15:51:03.630 に答える
1

Xcode ビルド ログ アクティビティで警告を明らかにし、clang フラグを見つけることができます。これを試して:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-property-type"
...
#pragma clang diagnostic pop
于 2019-03-28T02:36:21.870 に答える
-2

サブクラスのプロパティをオーバーライドしないでください。そうするべきだと思う理由は理解できますが、それは実際には正しい設計ではありません。2 番目の名前には、「numberValue」などの別の名前を付けます。

于 2013-02-28T02:08:48.193 に答える