5
Aşağıdaki kod, Swift 3'te çöküyor, herkes nedenini açıklayabilir mi? swift 3 dizi yapı -> Cast to NSObject -> cast back => çökme
struct S {
let a:Int
}
let t = [S(a: 8)]
let u:AnyObject = t as NSObject
let v:[S] = u as! [S]
çünkü Swift içinde yapılar 3 dizi NSObject (o Swift 2'de değil) ve bu şekilde de NSArray dönüştürülebilir edilemez mi? Ve neden öyle NSObject ..
Izinle: AnyObject = t NSObject olarak bile sizin için derler ...? Hızlı diziler, değer türleridir ve doğal olarak “NSObject” tipi beton sınıfından türetilmez. Swift yerel türleri ve Obj-C türleri arasında Swift 2 örtüşen köprüleme, biraz kafa karıştırıcı dönüşümlere izin verebilir, ancak Swift 3'te örtülü köprüleme olanakları kaldırılmıştır. – dfri
Bu gariptir, çünkü v = u olarak mı? [S] 'çalışır. – JAL
@dfri - evet, bu derleme, Swift 3'te bir hata olabilir .. – silyevsk