2014-12-02 3 views
12

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

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

Также обратите внимание, что это поведение наблюдается только на 64-битных устройствах и симуляторах, но не на 32-разрядных. Я тестировал с помощью Xcode 6.1, 6.1.1 и 6.2.

struct TestStruct { 
    unowned let reference: NSString 
} 

let anArray: [TestStruct] = [] 

for anObject in anArray { 
    NSLog("This is called endlessly") 
} 

Я делаю что-то неправильно? Разве это не поддерживается? Или это просто краткая ошибка, о которой я должен сообщить?

+1

Очевидно, ошибка, не так ли? Действительно хорошая ошибка. Хороший пример, хорошее тестирование. К сожалению, я могу только возвысить один раз! – matt

+0

Испытывали ли вы испытания на своей машине и видели проблему? Я переустановил Xcode, перезапустил много раз с тех пор, как обнаружил это, но у меня все еще есть надежда, что это как-то моя машина. – Acey

+2

Вы с ума сошли? Я не собираюсь запускать этот код! Мой компьютер может взорваться. Вы уже разрушили свой. – matt

ответ

0

Как отмечалось в комментариях, это похоже на ошибку в компиляторе Swift. Сообщение об этом через Apple's Bug Reporter поможет нам всем.

+0

Шахта rdar: // 21126703 – Klaas

Смежные вопросы