В подклассе я переопределяю тип свойства, чтобы он был подклассом этого свойства, что работает следующим образом:
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 и попытался отключить все предупреждения только для этой строки с помощью "-w"
флаг, но это не сработало.
-fdiagnostics-show-option
можно передать в Clang, чтобы показать связанную группу предупреждений для предупреждения (которую вы можете использовать для подавления этой группы предупреждений). Я не уверен, как просмотреть это в Xcode, поэтому я скомпилировал в командной строке. К сожалению, несмотря на то, что у меня есть группы предупреждений о циклах сохранения и т. д., для этого конкретного предупреждения ничего не было напечатано, поэтому конкретного флага может не быть. - person MaxGabriel   schedule 28.02.2013