Как очистить несоответствующие параметры: 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', который компилятор интерпретирует как определение типа.