Xcode зависает на " компиляции исходных файлов Swift"
Я запускаю Xcode 7.3.1. При создании моего проекта на основе Swift он зависает на "компиляции исходных файлов Swift". Я пробовал различные комбинации удаления DerivedData
, clean, run, перезапуск Xcode, перезапуск OS X, никто не работает. Есть идеи?
11 ответов
Я сделал расширение класса. Это также заставляет компилятор Swift застрять в цикле без ошибок:
class X: X
Спасибо за все предложения комментаторов. Я сузил его до ссылается на свойство, которое я удалил. Пример:
var people: [Person] = ...
let foo = people.map { "\(.name), \(.age)" }
здесь Person
выглядит примерно так:
protocol Person {
var name: String { get }
var age: Int { get }
}
все работает нормально. Затем я удалил age
пока держащ закрытие неизменным. Это заставило Xcode безнадежно запутаться. Вероятно, связано с выводом типа Swift.
попробуйте очистить папку сборки проекта
- удерживая клавишу option и добрался до продукта - > очистить папку сборки (где Clean раньше был в меню)
- если вы используете CocoaPods, удалите файл рабочей области и запустите
Pod Install
илиPod Update
Я думаю, что 2, вероятно, является причиной.
измените "уровень оптимизации компилятора Swift" в настройках сборки с "оптимизация всего модуля"на" оптимизация одного файла". Возможно, это не ваша проблема, но она решила мою, с которой я застрял на полдня. Это может быть просто временная ошибка в последней версии Xcode (8.2.1 был тот, который я использовал в то время, когда я писал это).
у меня была та же проблема. В моем случае это, по-видимому, результат применения слишком большого количества нулевых действий. Я строил элемент json:
json = [ "item1": value1 ?? "",
"item2": value2 ?? "",
"item3": value3 ?? "",
...
"item14": value14 ?? "" ]
это не будет компилироваться. Когда я удалил все нулевое сращивание, чтобы оно выглядело следующим образом, оно собралось отлично.
json = [ "item1": value 1,
"item2": value 2,
"item3": value 3,
...
"item14": value 14 ]
Я не пытался выяснить точку отсечения для количества элементов, прежде чем он застрял.
в моем случае проблема была во время разбора JSON. Я отправлял необязательное значение в параметре словаря во время синтаксического анализа JSON.
существуют различные возможные причины чрезвычайно длительного времени компиляции. Случаи угла или края везде. Поэтому лучший способ-наблюдать и расследовать свой собственный случай.
хотя упоминается другими в комментариях, но шаги ниже по-прежнему worths больше внимания:
- запустить проект
- переключатель Навигатор Отчетов (команда + 9) и выберите текущую работает
Build
задач. Посмотрите, какой исходный файл занимает много время компиляции. - Проверьте недавнюю историю фиксации этого исходного файла. Исследуйте возможную причину.
xcode, похоже, имеет проблему объединения более 5 строк. Видеть это: Xcode зависает при попытке выполнить это на игровой площадке Swift? Данный обходной путь решил мою проблему
просмотр навигатора отчетов помог мне найти проблему. В моем случае проблема заключалась в том, что я пытался добавить ограничения автоматической компоновки в программно добавленное подвидение UITableView
на UITableViewController
.
в моем случае XCode stucks на большом словарном литерале:
requestParameters = [
"asset" : "...",
"user" : "...",
// about 15 additional keys
]
проблема была решена после замены этой части:
var requestParameters = [String : Any]()
requestParameters["asset"] = "..."
requestParameters["user"] = "..."
// about 15 additional keys
в моем случае я изменил
bookingPassengers.append(["paxType": passengersData[passIndex].travellerKind ?? " " ,
"firstName": passengersData[passIndex].firstName ?? " " ])
to
bookingPassengers.append(["paxType": passengersData[passIndex].travellerKind! ,
"firstName": passengersData[passIndex].firstName! ])
после этого все стало хорошо