2015-10-19 70 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

哦,哦,哦,对象的创建来自一个单例,它通过设计持续存在......与循环中数据的感知无关!