Orada similar questions var, ancak bu en yeni Swift 2.2 sürümü. Umarım şimdi bir çözüm var çünkü bu zihnimde Protocol-Oriented Programming
'a büyük bir engel gibi görünüyor. Bu uygun protokoller bir dizi olarak sınıfların bir dizi tedavi etmek için herhangi bir şekilde var Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0X0).
Protokol türlerini diziye dökerken önemli hata: Objective-C'den köprülenmiş olamaz
protocol P: class {
var value:Int {get}
}
class X: P {
var value = 0
init(_ value:Int) {
self.value = value
}
}
func getItems() -> [P] {
let items: [X] = [X(1), X(2), X(3)]
return items
}
let results: [P] = getItems()
: Bu
bir hata ile let results
atama başarısız? Bu, özellikle protocol-oriented
ağırlığındaki bir dil için gerçekten basit ve doğal bir istek gibi görünüyor.
@objc
veya flatMap
veya bağımlılık zinciri ve performans üzerinde büyük etkileri nedeniyle kullanmak istemiyorum - bu bir kesmek olacaktır. Bunun doğal olarak çalışmasını isterim ya da umarız Apple/Swift açık kaynak ekibine sunabileceğimiz ve sunabileceğimiz bir hata.