2016-09-15 17 views
21

Kodumu Swift 3'e çevirme Garip bir sorunla karşılaştım. Şu anda (15 Eylül 2016) Xcode 8 (public version) çıktı ve kodu dönüştürdükten sonra, Uygulamam görünüşe göre bir sebep olmadan çöküyor.Otomatik düzenleme sorunu Xcode 8 [_SwiftValue nsli_superitem]

Orada Otomatik Düzen yanlış bir şeydir ve günlük gibi bir şey diyor:

[_SwiftValue nsli_superitem]: unrecognized selector sent to instance 

nasıl çözebilir? Teşekkür

cevap

37

Sadece garip ama çalışma çözüm anladım:

yerine bunu:

let views = ["view":aView] 
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "...", options:[], metrics: metrics, views: views)) 

açıkça sözlüğü bildirin:

biliyorum
let views: [String:UIView] = ["view":aView] 
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "...", options:[], metrics: metrics, views: views)) 

, çok garip ama işe yarıyor . Alkışlar

+9

Bunu paylaştığınız için teşekkür ederiz. Benim için isteğe bağlı olan manzarayı açıyordu. Bu yüzden görüntüleme sayısı = ["görüntüle": aView!] ' –

+0

En azından seninki değişti. Benim proje yükseltme tüm kısıtlarımı tamamen yok sayıyor. Değişiklikleri geri aldı ve üst üste 3 kez tekrar denedi. Müvekkilim, güncellemelerini istedikleri küçük özelliklere ulaşmadan önce tüm arayüzlerini tamamen yeniden yapmak zorunda kalmayı sevecekler. – DiggyJohn

+0

Teşekkürler @martn_st, bu benim için çalıştı. Benim bildirgem zaten @ unwOutlet zayıf var aTableView: UITableView! Swift 3'te sanırım yeterli değil mi? – Bek

2

Hızlıca 3'te, örtülü olarak isteğe bağlı isteğe bağlı seçenekler ile çalışma şekli değişti. Aşağıdaki örneği inceleyelim:

let optionalInt: Int! = 1 
let int = optionalInt 
let array = [int, 2] 
print(array) // prints: [Optional(1), Optional(2)] 

Bunun yerine beklendiği gibi tip [Int] bir dizi sahip, şimdi yukarıdaki çalışma zamanı hatası neden olur [Int?] var.


pascalbros 'ın geçici çözüm Bir dizi veya sözlükteki biniyorlar beklenmedik olası isteğe bağlı öğeleri kontrol etmek öneriyoruz, açıkça değişkenin tipi sorununu çözer ilan etmek, ancak orada ne olduğunu emin olmak ve çıkarılan türünü değiştirmek.

İlgili konular