編輯:發生這種情況是因爲我通過可選鏈接的屬性和/或方法訪問SomeArrayWrapper實例。我已更新我的示例。替換C範圍運算符 - 分段錯誤:11當使用w /?鏈接
我今天上午有一個問題,將項目更新到Swift 2.2。
這是什麼,我有一個例子:
//wraps an array
class SomeArrayWrapper<T> {
var privateArray = [T]()
// returns count from private array
var count: Int { get {
return self.privateArray.count
}
}
}
class SomeClass {
var list: SomeArrayWrapper<Int>?
}
let someInstance = SomeClass()
// Somewhere else I need to use this like this:
let myArrayType = SomeArrayWrapper<Int>()
for var i = 0; i < someInstance.list?.count; i++ {
// Do things.
}
// Replacing the C style loop with:
for i in 0..<someInstance.list?.count {
}
// Reults in a segmentation fault 11 at compile time.
我經歷這種變化作爲一個警告的C循環的結果。我沒有將我的自定義結構符合序列或集合(我不確定這是否與它有關)。
這是一個Swift 2.2的bug還是我做錯了?
對我來說它的工作原理... – user3441734
@ user3441734我發現它通過使用可選鏈的東西來使用遊俠操作符。 –
@thefredelement您應該將您的解決方案作爲_answer_發佈到您自己的問題上,而不是作爲對問題本身的修改。這可以幫助別人。回答你自己的問題是合法的,並鼓勵Stack Overflow;在48小時內,你甚至可以接受你自己的答案(當然,沒有這樣做的代表點) – matt