如何在容器中使用Swift特定容器?

时间:2015-01-24 07:19:27

标签: ios xcode swift nsarray nsdictionary

我有一个词典,其中包含另一个Dictionary,其中包含Array,其中包含另一个Array自定义类。我在使用这些方面遇到了很多麻烦,有人可以很容易地告诉我我可以定义,初始化和访问的方式以及专门分配给任一部分。

Dic = [String: [String: [[MyClass]]]]

很抱歉,如果它令人困惑。

1 个答案:

答案 0 :(得分:1)

此代码向您展示如何执行您所要求的操作,但您请求的数据结构使用起来非常麻烦。我建议再考虑一下你想要完成什么并查看这个数据结构。

class MyClass {
   var name : String
   init(name: String) {
      self.name = name
   }
}

// Create your dictionary
var dic : [String: [String: [[MyClass]]]] = [:]

// Create a list of MyClass object
var list = [MyClass(name: "first"), MyClass(name: "second"), MyClass(name: "third")]

// Create a dictionary with string key and array of array of type MyList
var myClassDic = ["test": [list]]

// update or add new value via the updateValue method
dic.updateValue(myClassDic, forKey: "index1")

// update or add new value via the subscript
dic["index2"] = ["test2": [[MyClass(name: "forth"), MyClass(name: "fith")]]]

// Iterate over your outer dictionairy
for key in dic.keys {
   // retrieve an entry from your outer dictionary
   var tempDic =  dic[key]
   // Iterate over your inner dictionary
   for sKey in tempDic!.keys {
       // retrieve an array of array of MyList Object
       var containerList = tempDic![sKey]
       // iterate over the outer array
       for listVal in containerList! {
           //Iterate over the inner array
           for sListVal in listVal {
               print("\(sListVal.name) ")
           }
           println()
       }
   }
}