2016-09-23 4 views
1

Этот код генерирует ошибку сегментации: 11 ошибку на компиляции:Xcode 8 Swift ошибка 3 Сегментация: 11

class Test: UICollectionViewLayout { 
    var sublayout: Sublayout? 
    override func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool { 
     sublayout?.shouldInvalidate?(forNewBounds: newBounds, currentBounds: collectionView!.bounds) 
     return true 
    } 
} 

@objc protocol Sublayout { 
    @objc optional func shouldInvalidate(forNewBounds: CGRect, currentBounds: CGRect) 
} 

Любая идея?

ответ

1

Просто FYI, после преобразования моего приложения Swift 2.2 iOS в Swift3/Xcode8. Я получаю segfault 11. В разделе 2.2 приложение составлено без ошибок или предупреждений, поэтому я думаю, что S3/XC8 еще не готов к реальной работе.

+0

от 26 сентября 2016 года – e987

+0

У меня такая же проблема. Даже если вы можете выделить то, что вызвало это, его очень плохой знак о XCode 8 + Swift 3 – user1122069

0

Да, у меня была такая же проблема после перехода на Swift3/Xcode8. Я смог построить/запустить на устройстве и симуляторе, но в архиве в разделе ошибка сегментации 11, дамп стека указывал на некоторые методы протокола, что, конечно же, не было причиной.

Но, я мог бы еще архив, установив для текущей цели Swift Compiler> Генерация кода> Уровень оптимизации> Release> Нет [-Onone]

enter image description here Я думаю, портя Уровень оптимизации не правильно, Но пока мы не получим стабильную версию Xcode, все должно быть в порядке.

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