Как очистить несоответствующие параметры: nullable и FooType не являются совместимыми предупреждениями в AppCode

Это может быть вопросом AppCode, поскольку XCode не отмечает этот конкретный сценарий.

Я вижу эту ошибку в разных местах в AppCode:

Parameter type mismatch: Types 'nullable' and 'FooType' are not compatible

где FooType может быть любого типа.

Вот звонок, который демонстрирует проблему:

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:spinnerBackgroundView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:0]];

где значение toItem помечается предупреждением.

Если посмотреть на API, параметр toItem может иметь значение null:

+(instancetype)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(nullable id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)multiplier constant:(CGFloat)c;

Это вызвано тем, как я называю API? Или это глюк в AppCode (который не предлагает никаких предложений, кроме "переключиться в режим получения", который не имеет значения.)

1 ответ

Это почти наверняка не ошибка в AppCode, но без просмотра описания интерфейса для FooType трудно сказать наверняка. Скорее всего, это неуместный атрибут 'nullable', который компилятор интерпретирует как определение типа.

Другие вопросы по тегам