Swift Project не строится

Я пытаюсь преобразовать один из моих проектов из чисто Objective-C в Swift, но у меня проблема с Xcode. С любым проектом Sprite Kit, Obj-C или Obj-C/Swift все будет индексировать, чистить, строить и успешно работать. Однако, когда проект состоит только из .swift файлов, Xcode зависает при индексировании и построении и больше ничего не сделает. Я попытался отключить индексирование, нажав на папку DerivedData, даже полностью переустановив Xcode 6 вместе с соответствующими библиотечными файлами, но ничего не работает. Любые идеи о том, как исправить это?

Ответы

Ответ 1

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

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

Я подал ошибку с Apple, радар номер 17241603.

Ответ 2

Эта ошибка будет связана с нашим состоянием проекта и исходным кодом. Я откатил некоторые коммиты моего проекта, xcode удалось индексировать мой проект.

В моем случае xcode не удалось индексировать, когда у моего проекта есть объявление большого словаря. (Я удался индексированием после его удаления.)

Ответ 3

У меня была та же проблема, и я смог найти решение при анализе следующего кода

func toDictionary() -> NSDictionary  {
        return [
            "smartCoins" : smartCoins ?? 0,
            "name" : name ?? "",
            "birthDate" : birthDate ?? "",
            "photo" : photo ?? "",
            "gender" : gender ?? "",
            "zoneId" : zoneId ?? "",
            "cityId" : cityId ?? "",
            "username" : username ?? "",
            "id" : id,
            "smartShopperIds" : smartShopperIds ?? [String](),
            "followers" : followers ?? 0,
            "voucherIds" : voucherIds ?? [String](),
            "friend" : isFriend ?? false
        ]
    }

Оказывается, оператор ?? увеличивает время компиляции. Поэтому, когда он использовался несколько раз (от одного до трех), время компиляции увеличивается, но заканчивается. Однако при наличии большего количества компиляция никогда не заканчивается.

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

Ответ 4

Здравствуйте, я также столкнулся с той же проблемой и решил ее.

перейти к продукту → Нажмите "Стоп". Пока вы не увидите индексацию  останавливается.

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

попробуйте и скажите мне, если что-нибудь еще.

Ответ 5

Нет выбора, вам нужно преобразовать его вручную. Пока нет автоматического преобразования.

Ответ 6

У меня была такая же проблема с компиляцией xcode 7 навсегда. Я обнаружил, что инициализация map() в массиве вызвала проблему. Я переключился на использование append() вручную, и проблема решена. Вот подробное исследование http://applytech.me/blog/build-stuck-after-upgrading-from-xcode-6-to-xcode-7/ Надеюсь, что это поможет.

Ответ 7

XCode 8 beta 6 висел на компиляции Swift для меня. Оказалось, что это круговая ссылка в иерархии классов. т.е. у меня было что-то вроде:

class Foo : Foo {
    // etc
} 

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