Замораживание индекса Swift Xcode или медленное

Может это просто меня так раздражает "особенность":

После обновления с Xcode 6.0.1 до Xcode 6.1 все изменилось. Xcode 6.1 постоянно индексирует проект или компилирует исходные файлы. Проект небольшой. Он просто содержит кучу файлов Swift и AWS SDK 2.0 Cocoapods в рабочей области. Я не думаю, что это должно мешать плавному индексированию и компиляции целого. Я попробовал с некоторыми aws-sdk-ios-samples, просто чтобы увидеть, как Xcode 6.1 работает с ними, и это закончилось тем же вечным ожиданием.

Какие решения я пробовал до сих пор:

  1. Удаление «Производных данных» в Организаторе и повторное открытие рабочего пространства. (не исправить)
  2. «Показать содержимое пакета» в файле .xcodeproj и удалить .xcworkspace, как в (Xcode 4 - низкая производительность )

К сожалению, ни один из них не работал.

P.S. может мне стоит попробовать воссоздать проект? Настройки моего компьютера: MacBook Pro (Retina, 13 дюймов, середина 2014 г.), память 8 ГБ, 1600 МГц, DDR3, с Yosemite. (Думаю, этого достаточно для запуска этого небольшого проекта.)


person leonard    schedule 21.10.2014    source источник
comment
Подобные опыты? Да: Xcode beta 3 Swift indexing навсегда   -  person zisoft    schedule 21.10.2014
comment
Я не буду сильно помогать, но то, что я делаю, это ... Я просто позволяю xcode 6.x взять свое время. Если я буду бороться с этим, это сильно меня затянет, поэтому я просто жду запуска xcode 6. Я дал запустить его тупую индексацию. Затем я запускаю симулятор iOS отдельно и жду, пока не появится этот тупой трамплин. Наконец, когда я запускаю проект, я упускаю из виду тот факт, что много раз индексирование говорит о приостановке, и я молюсь ‹# godObject #›, выпью кофе и попытаюсь войти в режим дзен. Но * вздох *, это грубо: / и мне очень понравился xcode 5.1.1: |   -  person staticVoidMan    schedule 29.11.2014
comment
Этот ответ сработал для меня: stackoverflow.com/a/33395844/242933   -  person ma11hew28    schedule 15.12.2016


Ответы (25)


Я пробовал многие из приведенных выше предложений, включая разделение файлов, установку бета-версии Xcode 6.2 и нарушение операторов конкатенации строк. Что в конечном итоге сделало это для меня, так это разделение массива объявления литерала словарей, который я использовал для тестовых данных, на несколько операторов .append.

// This causes indexing/building to hang...
var test = [ [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ] ]

// This works fine.
var test = [ [ "a": false, "b": "c" ] ]
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])

Кроме того, как бы то ни было, 6-я запись в этом массиве - это то, что вызывает у меня проблему; пять работает нормально.

person Zen    schedule 17.12.2014
comment
То же решение сработало для меня со словарем. Его инициализация напрямую вызвала постоянное выполнение индексации. Инициализация его init() шаг за шагом работает отлично. Стоит упомянуть, что мне также пришлось удалить файл .xcworkspace. - person jboi; 22.12.2014
comment
Исправил это для меня без задействования словарей. Просто массив кортежей, которого хватило с 8 элементами в объявлении. Пришлось вернуться к добавлению с 11 элементами. Не удосужился найти точную точку разрыва, но строит в 10 раз быстрее. Xcode версии 6.1.1 (6A2008a) на Mavericks. - person Josh; 03.01.2015
comment
Я также затронул проблему ровно с 6 элементами. 5 было нормально. - person Justin Lau; 22.01.2015
comment
Это проблема XCode или компилятора? - person Sljux; 03.03.2015
comment
Спасибо за расследование. Это довольно неприятная ошибка, и она сохраняется в производственных сборках. Я использую Xcode 6.3.1 в Йосемити. - person Matt Long; 04.05.2015
comment
Это заставляет меня задаться вопросом, замедляют ли индексирование Xcode статические константы / переменные / методы? В моем текущем проекте их несколько, и индексация идет очень медленно. - person BadmintonCat; 27.05.2015
comment
Когда мой xcode начал индексироваться вечно, я понятия не имел, что это из-за моего собственного кода, пока я не нашел это ... спасибо !! Он также нагревает мой Macbook, пока мне не придется его выключить, страшные вещи - person Bruce; 13.07.2015
comment
есть только несколько вещей, за которые я действительно злюсь на Apple, и это один - person tango whiskey double; 14.10.2015
comment
Все еще сохраняется в Xcode 6.4. Это решение работало, но требовало перезапуска xcode несколько раз. Возможно, удаление файла .xcworspace в соответствии с предложением jboi могло помочь быстрее. - person WaterNotWords; 30.10.2015
comment
Работал у меня на XCode 7. Также требовалось удаление папки DerivedData. - person redent84; 10.11.2015
comment
В Xcode 7.2 строка, которая вызывала у меня проблемы, была class func downloadCulture(culture: Culture, progress: ((done: Int, total: Int)->(Void))?, completion: (result: Int)->(Void)) Просто объявление функции - person Gonzo; 13.12.2015
comment
Я испытал это в Xcode 7.3 с литералом массива из 229 элементов. Вместо того, чтобы разбивать его, я добавил объявление типа вместо того, чтобы позволить Swift определять тип. После того, как я это сделал, все заработало. - person Brigham; 12.04.2016
comment
Вы открыли для этого радар? если да что за #? - person cynistersix; 22.07.2016

Единственное рабочее решение для меня - удалить все производные данные (не только для текущего проекта, просто очистить всю папку), а затем перезапустить Xcode.

  1. Открыть файл / настройки в Xcode

  2. Нажмите «Места» в правом верхнем углу всплывающего окна.

  3. Щелкните значок маленькой стрелки рядом с «/Users/Mac/Library/Developer/Xcode/DerivedData». Это приведет вас к папке Xcode, которая содержит папку DerivedData (которая содержит все производные данные из ваших предыдущих проектов. .)

  4. УДАЛИТЬ папку DerivedData

person Remy Cilia    schedule 20.02.2015
comment
@TravisM. Вы следовали инструкциям? Если вы перейдете в «Окно», «Органайзер», «Проекты», «Удалить производные данные», это не сработает. Вам нужно пройти через Настройки. - person ericgu; 02.04.2015
comment
@ericgu Да, но это не сработало. Я исправил свою проблему, хотя это было связано с тем, что я инициализировал словарь с жестко закодированными данными за один раз. Когда я переместил код для добавления жестко закодированных данных по одной строке за раз, проблемы с зависанием / медлением сразу же исчезли. - person Travis M.; 02.04.2015
comment
Папка в ~ / Library / Developer / Xcode / DerivedData / на моем компьютере. Вы также можете найти его, выбрав Окно ›Проекты в Xcode. - person Suragch; 23.04.2016
comment
Спасибо. Это помогает. Проблема вечной индексации начинается сразу после того, как я обновил свою версию cocoaPod и выполнил установку модуля. - person WKL; 14.06.2016

Вы используете CocoaPods? Сегодня я столкнулся с той же проблемой. (Используя xCode 6.1.1)

Чтобы решить эту проблему, я удалил все в ~/Library/Developer/Xcode/DerivedData, папке Pods в каталоге моего проекта и <project>.xcworkspace.

Затем я открыл терминал, перешел в каталог своего проекта и снова запустил pod install.

person Michael Schinis    schedule 05.01.2015
comment
Да. На данный момент Xcode работает нормально. Но он все равно время от времени выдает ошибку сбоя sourcekit. Мое решение - удалить папку с производными данными. - person leonard; 05.01.2015
comment
Рад видеть, что это сработало и для кого-то другого :). Похоже, что xCode пытается проиндексировать библиотеки CocoaPod и где-то застревает. - person Michael Schinis; 18.03.2015
comment
Удаление папки Pods и файла ‹project› .xcworkspace, а затем повторный запуск установки pod снова сработали. - person KML; 15.11.2015

Была такая же проблема сегодня. Xcode 6.3.2, средний проект Swift. В какой-то момент он начал индексацию и никогда не закончил индексацию. Код, который вызвал это, был словарем типа [String: [String]], поэтому строковый ключ dict со строковыми массивами в качестве значений. У меня было два из них с ключами от A до Z, и каждая из этих 26 записей содержит массив строк от 5 до 10 строк.

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

Честно говоря, это просто смешно! Apple необходимо исправить Xcode! При компиляции проектов Swift это уже ужасно медленно, но подобные ошибки - это серьезный недостаток. Я не могу с этим делать свою работу должным образом!

person BadmintonCat    schedule 27.05.2015

Для тех, у кого все еще есть эта проблема, я пришел к выводу, что это обходной путь, который избавляет вас от необходимости вводить объекты один за другим:

// instead of this, which freezes indexing
let keys = [keyQ, keyW, keyE, keyR, keyT, keyY, ... keyM]    

// and instead of this, which is ugly & lengthy
var keys = [KeyboardKey]()
keys.append(keyQ)
keys.append(keyW)
...
keys.append(keyM)

// use this:
var keys = [KeyboardKey]()
keys.appendContentsOf([keyQ, keyW, keyE, keyR, keyT, keyY, ... keyM])
person Andrew Robinson    schedule 28.10.2015
comment
Вау ... У меня была точно такая же проблема. Спасибо! Я сообщил об этом в Apple как об ошибке. То, что ты сказал, для меня не сработало. Мне пришлось разбить свой длинный массив на более мелкие массивы, каждый из которых содержит пять или меньше элементов. - person ma11hew28; 15.12.2016

Что касается меня, я пробовал все вышеперечисленное безуспешно; но все, что мне нужно было сделать, это удалить папку с производными данными, затем открыть другой случайный проект, подождать, пока он проиндексируется, и теперь мой исходный (неисправный) проект работает!

Сделайте одолжение миру разработчиков, яблоко и сделайте свои быстрые компиляторы с открытым исходным кодом - чтобы не мешала нам ваша некомпетентность.

person Gmeister4    schedule 07.04.2015

Я использую Xcode версии 7.3 (7D175)

Думаю, я мог понять основную проблему. Вот два случая, когда я застрял на этапе индексации:

  • Я создал замыкание, которое назначил переменной, и опустил сигнатуру типа. Я думаю, что у xcode были проблемы с этим шагом вывода типа. Если я правильно помню, одним из аргументов был CGPoint, у которого есть перегруженный конструктор. Моя гипотеза состоит в том, что существует слишком много возможностей того, что мое закрытие могло бы принять в качестве аргументов.

  • Я реорганизовал фабричный метод таким образом, что вместо того, чтобы возвращать экземпляры одного типа, он мог возвращать экземпляры многих типов с общим базовым классом. Похоже, что где бы я ни использовал фабричный метод, мне приходилось приводить полученный объект к определенному типу (либо с помощью as?, Либо путем присвоения его переменной, которая принимает определенный тип). Опять же, шаг вывода типа, кажется, нарушен.

Похоже, то же самое происходит с объявлениями словарей, упомянутыми ранее. Я отправил отчет об ошибке с яблоком.

person DudeOnRock    schedule 02.04.2016

У меня возникла такая же проблема после обновления до 6.1. Xcode зависает при компиляции или индексировании без создания определенного сообщения об ошибке.

Проблема была наконец решена путем разбиения некоторых более длинных выражений в файлах swift на несколько более коротких выражений. Часть моей программы объединяет множество различных строковых переменных, чтобы сформировать более длинную строку. Попытки объединить их в одно выражение и с помощью оператора присваивания сложения не увенчались успехом. Мне удалось заставить его работать, выполнив что-то похожее на следующее (упрощенное):

var a = "Hello"
var b = " "
var c = "World"
var d = "!"
var partA = a + b
var partB = c + d
var result = partA + partB

Я получил эту идею из-за того, что в предыдущей версии Xcode много раз получал следующую ошибку: «Выражение было слишком сложным, чтобы его можно было решить в разумные сроки; подумайте о том, чтобы разбить выражение на отдельные подвыражения».

Надеюсь это поможет

person Adam137    schedule 23.10.2014
comment
Да, спасибо, я действительно принял такие предложения. И я также сократил длину одного из моих файлов с 1500 строк до примерно 1200. И, конечно же, я создал новый проект и импортировал в него все файлы один за другим. Затем, наконец, он снова включается. Не совсем уверен, кто из них лучший спаситель. - person leonard; 23.10.2014
comment
Разделение длинного выражения на Swift помогло мне. - person MandisaW; 18.03.2016

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

Я нашел решение, которое сработало для меня, я открыл проект с более старой версией Xcode 6.1 (6A1030), у которой не было проблем с индексацией, затем вернулся к последней версии Xcode версии 6.1 (6A1052d), которую я использовал раньше, и индексация была исправил и продолжал хорошо работать.

Я пришел к выводу, что это ошибка Xcode версии 6.1 (6A1052d), которая, я надеюсь, улучшится в будущих выпусках.

Проблема действительно возникает время от времени, одно и то же исправление работает каждый раз. Я предполагаю, что другим решением было бы просто придерживаться более старой версии Xcode 6.1 (6A1030), но она не будет работать с устройствами под управлением iOS 8.1 и не будет иметь последних исправлений ошибок.

person Jorge Costa    schedule 04.11.2014
comment
Я испробовал большинство предложений по решению проблемы с постоянным индексированием, и это было единственное, что у меня сработало. У меня не было более старого Xcode 6, но у меня был Xcode 5. Он не собирался, но индексировался, и после этого Xcode 6.1 индексировался успешно. - person SarahR; 08.11.2014
comment
Я забыл упомянуть, что это было временное решение, и мне пришлось сделать это снова через несколько часов. - person SarahR; 08.11.2014

Я пробовал это с Xcode 8.3.3. Вот мои результаты:

Вы можете написать отличный код Swift, который приведет к зависанию индексации.

После зависания индексации зависает. Изменение кода Swift обратно на то, что не приводит к зависанию индексации, не помогает, он все равно зависает.

Закрытие проекта и повторное открытие в этой ситуации не помогает.

Выход из Xcode и его перезапуск помогает. Индексирование больше не будет зависать (то есть, если вы изменили код обратно на то, что не заставляет его зависать).

Также помогает перезагрузка Mac, хотя в этом нет необходимости.

Зависание вызвано прекрасным кодом Swift. Пример, на который я был похож

if let date = function1()
?? function2()
?? function3()
?? function4()
?? function5()
?? function6()
?? function7()
?? function8()
?? function9()
?? function10() {
    return date
}

Индексирование зависало. Я закомментировал большую часть "??" строк, и все было хорошо (после выхода и перезапуска Xcode). Раскомментировал одну строку за другой. С некоторым количеством строк все было нормально, затем раскомментирование следующей строки заставило бы ее зависнуть.

Видимо, единственное, что помогает, - это изменение кода.

person gnasher729    schedule 03.07.2017

В моем Xcode решение заключалось в том, чтобы закрыть все избыточные окна. По какой-то причине многие открытые окна делают Xcode очень медленным.

person Arik Halperin    schedule 12.01.2015
comment
для меня это тоже было решение, удивительное, потому что раньше оно хорошо работало с таким же количеством открытых окон. - person Christian; 07.01.2016

Xcode 11.5 (11E608c) и все те же проблемы, через 6 лет после исходного вопроса. Я хотел бы отметить яблоко в этом вопросе, чтобы они могли увидеть этот беспорядок. Это большой проект (›1000 файлов), и я был под контролем, поэтому, когда я заметил индекс зависания, у меня было изменено более 100 файлов, и я не могу вернуться.

Все перепробовала:

  1. очистить производные данные и построить
  2. Перезагрузите xcode, перезапустите Mac
  3. удалить и добавить источник
  4. Искал словари, литералы и т. Д. И т. Д.

Проблема заключалась в создании массива:

private var overlayColors: [UIColor] = [UIColor(hex: "#b71c1c"), UIColor(hex: "#4a148c"),
                                        UIColor(hex: "#880e4f"), UIColor(hex: "#1de9b6"),
                                        UIColor(hex: "#f50057"), UIColor(hex: "#311b92"),
                                        UIColor(hex: "#f44336"), UIColor(hex: "#651fff"),
                                        UIColor(hex: "#d500f9"), UIColor(hex: "#3d5afe"),
                                        UIColor(hex: "#bf360c"), UIColor(hex: "#0d47a1"),
                                        UIColor(hex: "#006064"), UIColor(hex: "#2979ff"),
                                        UIColor(hex: "#ff6f00"), UIColor(hex: "#1a237e"),
                                        UIColor(hex: "#795548"), UIColor(hex: "#004d40"),
                                        UIColor(hex: "#00e676"), UIColor(hex: "#01579b"),
                                        UIColor(hex: "#33691e"), UIColor(hex: "#827717"),
                                        UIColor(hex: "#76ff03"), UIColor(hex: "#ffc400"),
                                        UIColor(hex: "#e65100"), UIColor(hex: "#00b0ff"),
                                        UIColor(hex: "#ff3d00"), UIColor(hex: "#616161"),
                                        UIColor(hex: "#263238"), UIColor(hex: "#ff1744")]

Что помогло мне обнаружить плохой файл Swift, так это то, что индексирование xcode зависло, я выполнил следующие шаги

  1. открыть монитор активности - ›быстрый процесс -› показать информацию о процессе - ›открыть файлы и порты. Это даст вам список того, какие файлы выполняет этот процесс, детализируя ваш список возможных плохих файлов.
  2. Другой удобный инструмент - этот скрипт SOURCEKIT_LOGGING=3 /Applications/Xcode.app/Contents/MacOS/Xcode &> ~/Documents/xcode.log, он запустит Xcode с подробным уровнем 3 и начнет регистрацию в файле журнала.
  3. Найдите в файле журнала последние записи для ваших быстрых файлов, например: my_project / Source / App /

Это не полное решение, но полезно узнать, где искать.

открыть монитор активности -› быстрый процесс - ›показать информацию о процессе -› открыть файлы и порты.

person firetrap    schedule 11.07.2020

Наконец, я «решил» проблему, хотя это всего лишь временное решение.

Я создал еще один проект и по одному добавлял в него файлы. Затем я обнаружил «очень длинный» файл viewcontroller.swift. Затем я разбил его коды на модули и превратил эти многократно используемые коды в функции в другом быстром файле. Кроме того, я воспользовался предложением в Интернете, что длинные выражения следует разбивать на более короткие. Затем индексация и компиляция работают.

Так что на данный момент я "решил".

НО, я не думаю, что это правильно. Xcode IDE должна быть более чем способна обрабатывать мой «очень длинный» быстрый файл, всего 1500 строк. Я считаю, что это определенно ошибка (существующая уже давно), хотя Xcode 6.1 уже является обновлением Xcode 6.0.1.

person leonard    schedule 23.10.2014

Что касается меня, я удалил приложение Xcode, снова загрузил его и установил. Это решило проблему, по крайней мере, сейчас.

person Tzegenos    schedule 12.11.2014

Индексирование Xcode обычно для вашего кода для предложений и автозаполнения, среди прочего, например, помощь вам в раскадровках и наоборот. Но чтобы ускорить ваш проект xcode, вы можете выключить / включить его через терминал

Отключить индексирование
по умолчанию записать com.apple.dt.XCode IDEIndexDisable 1 Включить индексирование по умолчанию написать com.apple.dt.XCode IDEIndexDisable 0

Но лучше использовать быстрый Mac с хорошей оперативной памятью.

person B25Dec    schedule 17.11.2016
comment
Отключение индексации серьезно повреждает Xcode, и этого не следует делать. Сказать кому-то о покупке нового Mac никогда не должно быть ответом, ноутбук двухлетней давности должен уметь обрабатывать последний Xcode. - person Knight0fDragon; 05.01.2017
comment
macOS 10.13 Beta 7 представила что-то, что приводит к сбою как Xcode 9 Beta 6, так и Xcode 8, как только запускается индексатор. Отключение его было единственным способом продолжить использование Xcode, даже с урезанной версией. - person Pegolon; 22.08.2017

Если вы не против вернуться к 6.0.1, пока они не выяснят это, у меня это сработало. У меня была такая же проблема с 6.1 и 6.1.1. Теперь я в порядке. Попробую 6.2 когда выйдет.

Вы можете найти предыдущие версии программного обеспечения Apple на официальном сайте разработчиков здесь: https://developer.apple.com/downloads/index.action

Если вы это сделаете, не забудьте сначала удалить текущую копию Xcode.

person JeremyGranger    schedule 12.12.2014

Я использую Xcode 6.1.1 с быстрыми файлами на том же самом MacBook Pro.

Поскольку я продолжал добавлять строки в массив 3D-строк, Xcode внезапно стал непригодным для использования, и теперь я ничего не могу сделать.

Попробую вернуться на 6.1 и, надеюсь, проблема исчезнет.

person gardner888    schedule 07.01.2015
comment
У меня такая же проблема. После добавления массива словарей xcode пришел в негодность ... Решение нашли? - person Almazini; 21.02.2015
comment
Я вернулся к Xcode 6.1, который работал лучше. Он не зависал при индексации навсегда, но иногда я печатал и получал мяч на 4 секунды. В целом я смог написать достаточно кода, чтобы все было сделано. Я не менял свой код. Хотя на Xcode 6.1 аккумулятор MacBook Pro не выглядел слишком сильно затронутым, но на моем MacBook Air середины 2013 года, работающем с 6.1.1, время автономной работы абсолютно минимальное. После запуска Xcode остается от ~ 12 часов до 2 часов. - person gardner888; 22.02.2015

Я вижу это в Xcode 6.3.2. Я очень надеялся, что через год после выпуска у них будет работать компилятор, но, увы.

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

    let hangsInsteadOfError = { l, r in
        return l.nameFirst < r.nameFirst
        || l.nameFirst == r.nameFirst && l.nameLast < r.nameLast }

    let fixingErrorAvoidsHang = { (l:User, r:User) -> Bool in
        return l.nameFirst < r.nameFirst
            || l.nameFirst == r.nameFirst && l.nameLast < r.nameLast }

Если я чему-то научился, работая в Swift, так это работать постепенно, чтобы не пришлось слишком много возвращаться, чтобы найти проблемный код.

person Chris Conover    schedule 01.06.2015

  1. Ваш статус индексации - это «индикаторный кружок» или «индикатор выполнения»?
  2. Если это «индикаторный кружок», значит, он уже застрял в начале.
  3. Откройте и проверьте с другими вашими проектами, если они все одинаковы, это означает, что это системная проблема.
  4. Просто перезагрузите компьютер, и все будет хорошо.
person Weidian Huang    schedule 01.10.2016

Я использую Xcode 8.2 и тоже закончил с этой проблемой. Это началось после того, как я определил сложную переменную кортежа - массив кортежа с подмассивом кортежа. Все становится очень медленно, когда подмассив кортежа имеет свойство, которое вычисляется программно.

Как отмечали некоторые другие ответы, индексация занимает вечность, и я считаю, что она пытается определить типы переменной.

Сначала я решил проблему, четко определив переменную с включенными типами. При обновлении свойства я сначала вычисляю его, а затем присваиваю кортежу, а не вычисляю при определении переменной.

Вот пример кода.

var sectionTuples: [(section: String, rows: [(name: String, subtitle: String)])] = []
let subtitle1: String = "" // something calculated dynamically
let subtitle2: String = "" // something calculated dynamically
sectionTuples = [(
section: "Section 1", rows: [
(name: "name1", subtitle: subtitle1),
(name: "name2", subtitle: subtitle2)
])]

Суть в том, что не позволяйте Xcode выводить сложные структуры.

person Q Liu    schedule 08.02.2017

У меня была такая же проблема. Мой Xcode - 8.2.1. Но в моем случае я хотел создать массив словаря с 33 парами ключ-значение. Я делал так, что застрял при индексации:

var parameter = [String : AnyObject]()
var finalArray = [parameter]

for item in listArray
{
    parameter = ["A": item.a as AnyObject, "B": item.b as AnyObject, "C": item.c as AnyObject, ... , "Z": item.z as AnyObject]

    finalArray.append(parameter)
}

Для меня сработало следующее:

var parameter = [String: AnyObject]()
var finalArray = [parameter]

for item in listArray
{
    parameter["A"] = listArray.a as AnyObject
    parameter["B"] = listArray.b as AnyObject
    parameter["C"] = listArray.c as AnyObject
    parameter["D"] = listArray.d as AnyObject 
    .
    .
    .
    parameter["Z"] = listArray.z as AnyObject 
    finalArray.append(parameter)
}
person Trup    schedule 17.03.2017

У меня тоже была эта проблема, и я решил ее, удалив / изменив выражения с помощью оператора «+».

Я изменил это:

var mainArray = arrayOne + arrayTwo + arrayThree + arrayFour + arrayFive

К этому:

var mainArray = arrayOne
mainArray += arrayTwo
mainArray += arrayThree
mainArray += arrayFour
mainArray += arrayFive

Это решило проблему.

В конце 2013 года на моей машине установлен максимально допустимый объем MBP.

person Casey Laris    schedule 12.11.2014
comment
Собственно мой опыт. Он зависает с прекрасным кодом Swift, и единственный способ исправить это - изменить код. - person gnasher729; 03.07.2017

Вы можете обновить до Xcode 6.1.1

Он был официально выпущен и для нас решена проблема индексации. В описании обновления говорится, что они применили исправления стабильности, поэтому очень вероятно, что оно будет вести себя более стабильно.

person Angel Naydenov    schedule 03.12.2014
comment
Интересный. Для меня 6.1.1 представил бесконечную проблему индексации с проектом, который отлично открывался в 6.1. знак - person Pascal Bourque; 04.12.2014
comment
Я понимаю. В нашем случае мы также упростили выражения и уменьшили размеры классов с помощью классов расширения. Что довольно смешно, что мы должны были это сделать, но это то, что мы должны были сделать. И, похоже, на данный момент это помогает. Кроме того, комментируя строки, мы сузили, какой фрагмент кода на самом деле является чрезмерно сложным в соответствии с тем, что думает компилятор Swift, и максимально снизили сложность. Надеюсь, они скоро это исправят, потому что это довольно раздражает. - person Angel Naydenov; 13.12.2014

Бета-версия Xcode 6.2 решила эту проблему для меня. Не молниеносно, но, по крайней мере, индексируется не вечно. Бета-версия не устанавливается поверх обычной установки Xcode, поэтому, если вам не нравится бета-версия, вы можете просто удалить ее.

Различные загрузки Xcode, включая бета-версию>

person Warren Whipple    schedule 26.11.2014

У меня были такие выражения, как:

let x = (value as? Int) ?? someDefault

также

guard let x = (dateFormatter().string(from: Date()) + msg + "\n").addingPercentEncoding(...) else { ... }

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

person soger    schedule 13.02.2020