Тип выражения неоднозначен без дополнительного контекста

Обновлено: 21.11.2024

Проблема в синтаксисе этой строки

Не ответ на этот вопрос, но когда я пришел сюда в поисках ошибки, другие тоже могут посчитать это полезным:

Для меня я получил эту ошибку Swift, когда попытался использовать цикл в массиве без добавления части .

  • Я тоже не отвечаю на этот вопрос, но я получил эту ошибку в SWIFT 5, XCode 12, когда передавал CGFloat функции, которая вызывала Objc float. Когда я передал CGFloat float, ошибка исчезла. Не самая описательная ошибка, двусмысленность обычно относится к повторяющимся или одинаковым.

Это происходит, когда у вас есть функция с неправильными именами аргументов.

и вы объявили свою функцию как:

Обычно это происходит, когда вы меняете имя переменной. При этом обязательно выполните рефакторинг.

  • Это случилось со мной после слияния / перебазирования, и изменение осталось незамеченным. Осторожно!
  • 1 Для меня это проблема возвращаемого типа.

Компилятор не может понять, какого типа сделать словарь, потому что он неоднороден. У вас есть ценности разных типов. Единственный способ обойти это - сделать его , что сделает все чертовски громоздким.

Это работа для структуры. Это значительно упростит работу с этой структурой данных.

Это может произойти, если ЛЮБАЯ часть выделенного вами метода или свойства пытается получить доступ к свойству или методу неправильного типа.

Вот контрольный список устранения неполадок:

Я получил эту ошибку, когда поставил пробел перед запятой в параметрах при вызове функции.

например, я использовал:

Тогда как это должно было быть:

  • Похоже на ошибку компилятора, которая, надеюсь, исправлена.

Явное объявление входов для этой функции сопоставления должно помочь:

У вас есть два перед

но похоже, что это всегда не происходит.

Я тестирую этот код на своей игровой площадке, он показывает предупреждение о более конкретных

  • вам нужно установить значение по умолчанию, чтобы сделать это init (id: String, name: String? = nil)

В моем случае это произошло с NSFetchedResultsController, и причина заключалась в том, что я определил NSFetchedResultsController для другой модели, чем я создал запрос на инициализацию (RemotePlaylist vs. Playlist):

но инициировал его запросом другого плейлиста:

Для меня это был вывод типа. Я изменил параметры функции с int на float, но не обновлял вызывающий код, и компилятор не предупреждал меня о неправильном типе, переданном в функцию.

Читайте также: