1
因此,這將是非常抽象的代碼,但是我正在做它循環一個對象數組,調用一個幫助函數從json解析複雜對象並將其插入到數組中。我遇到的問題是,我解析到對象中沒有得到通過每一次循環中清除:Swift循環持續變量/範圍
for item in parsedEvolutionList {
if let abilityKey: String = item.allKeys[0] as? String{
if let abilityData = item[abilityKey] as? NSDictionary{
if var newAbility = EvolutionAbilityStore.SharedInstance.retreaveEvolutionAbilityByKey(abilityKey) {
newAbility.parseFromJson(abilityData)
if evolutionList == nil {
evolutionList = []
}
evolutionList?.append(newAbility)
} else {
log.warning("Atempting to parse EvolutionAbility and \(item) was not found in the store")
}
} else {
log.warning("Atempting to parse EvolutionAbility and \(item) does not have data for ability to parse")
}
} else {
log.warning("Atempting to parse EvolutionAbility and \(item) is formatted incorectaly")
}
}
所以newAbility是一個數組,它包含的第一個解析的對象的第一個循環之後的內容,第二遍已經具有第一遍的內容並且添加第二遍的內容,等等等等,然後當向進化列表添加另一個指向同一對象的指針時,所有我的對象在evolutionList結束將對象指向同一個指針。爲什麼newAbility通過循環迭代持續存在?這對我來說沒有任何意義,因爲這會干擾範圍的界限。