从CSV文件动态分配值到快速字典

时间:2018-09-21 18:10:36

标签: ios swift

func createWeightForAgeForBoysModel(result: [[String]]) {
    var meal_for_age: [Int:[String:Float]]!
    for row in result{

        let age = Int(row[0])!
        let severe = Float(row[1])!
         meal_for_age[age]!["severe"] = severe
        print(age)
        print(severe)


    }
}

如何快速将值动态分配给空的网络词典。 self.meal_for_age[age]!["severe"] = severe的分配不断崩溃。

var meal_for_age: [Int:[String:Float]] = [Int:[String:Float]]()

由于在堆栈溢出文本编辑器上格式化代码的挑战,我不得不在方法定义下放置了Diet_for_age_variable的声明。

谢谢大家提供的调试帮助

1 个答案:

答案 0 :(得分:2)

有两个问题

  1. 基本上,发生崩溃是因为 meal_for_age (请遵循命名约定,即变量名称为 lowerCamelCased )已声明但未初始化。宣布它为空字典

      func createWeightForAgeForBoysModel(结果:[[String]]){
        var mealForAge = [Int:[String:Float]]()
     
  2. 如果该密钥不存在,则必须为该密钥创建一个空字典

      if mealForAge [age] == nil {
        mealForAge [age] = [:]
    }
    mealForAge [age]![“ severe”] =严重
     

    或添加键值对

      if mealForAge [age] == nil {
        mealForAge [age] = [“ severe”:严重]
    }其他{
        mealForAge [age]![“ severe”] =严重
    }
     

注意:这不起作用

 如果var meal = mealForAge [age] {
    餐[“严重”] =严重
 

由于值语义的缘故, mealForAge 不会更改。