2015-10-19 69 views
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通過循環迭代持續存在?這對我來說沒有任何意義,因爲這會干擾範圍的界限。

回答

0

哦,哦,哦,對象的創建來自一個單例,它通過設計持續存在......與循環中數據的感知無關!