Подтвердить что ты не робот

<< тип ошибки >> Странная ошибка

Я столкнулся с ситуацией, когда xcode останавливает автозаполнение, и если вы попытаетесь написать переменную, которая уже определена, xcode говорит << error type>>.

Вот моя ошибка:

enter image description here

4b9b3361

Ответ 1

Часто это означает, что ваш код в настоящее время не компилируется. У Swift часто возникают проблемы с вычислением типов кода, который сам по себе не является правильным. В некоторых случаях это ошибка в компиляторе. Использование AnyObject может быть особенно запутанным для компилятора, и его следует избегать как можно больше. В этом случае требуется AnyObject, но вы должны попытаться быстро преобразовать его в определенный тип. Не возвращайте [AnyType], если вы можете помочь ему.

Но короткий ответ заключается в том, что компилятор Swift все еще развивается, и он не всегда может выработать типы в сложных ситуациях, особенно на частичном или (в настоящее время) некорректном коде.

Обратите внимание, что вы используете var для множества вещей, которые должны быть let. Если вам действительно не нужно изменять переменную, вы должны предпочесть let. Это помогает предотвратить множество ошибок, и с компилятором может быть проще справиться (поскольку у переменной меньше способов ее изменения).

Ответ 2

Я начал видеть те же ошибки после обновления Xcode 6.1 и iOS 8.1. Я обнаружил, что если вы удаляете файл ModuleCache по пути /Users/username/Library/Developer/Xcode/DerivedData/ModuleCache, он временно исправляет ошибку. И при этом вам не нужно закрывать Xcode или проект. Удалив файл, просто подождите, пока Xcode немного проиндексирует файлы проекта. После этого проблема в основном устраняется в течение некоторого времени.

Поскольку это не решит проблему навсегда, вы должны избегать написания кодов, вызывающих это согласно другим ответам, до тех пор, пока Apple не решит это.

Ответ 3

<<error type>> может возникнуть из-за того, что компилятор Swift не находит файл заголовка.

Тот же модуль:

У вас есть какая-то структура папок, в которой находится ваш исходный код? Если да, попробуйте установить Scan All Source Files for Includes на YES.
Это заставит Xcode просматривать все эти папки при попытке найти файл заголовка.

Встроенные проекты, несколько модулей и т.д.:

1. Проверьте пути поиска

Посмотрите, где хранится файл, в котором указан ваш тип. В настройках сборки убедитесь, что это местоположение включено в пути поиска.
Если это часть путей поиска заголовка пользователя, убедитесь, что Always Search User Paths включен.

2. Проверка зависимостей

Посмотрите на суперклассы и т.д. вашего типа. Включены ли они в путь поиска?

Ответ 4

Обнаружилось, что ошибка уходит, и автозаполнение работает снова, если я инициализировал такую ​​переменную:

var name: String = "my name"

вместо:

var name = "my name" as String

Ответ 5

Во-первых, попробуйте CMD-SHIFT-K после CMD-R, чтобы очистить, а затем запустить сборку.

Если это не работает, закройте XCode, удалите производные данные и снова запустите XCode.