从字典的 NSMutableArray 获取字典

Get dictionary from NSMutableArray of dictionary

我正在尝试从 NSMutableArray 中获取 NSMutableDictionary

我这样设置数组:

let test : NSMutableDictionary = NSMutableDictionary()
    test.setValue("Monday", forKey: "day")
    test.setValue("7PM - 8PM", forKey: "hour")

    self.availabilityArray.add(test)

    let test1 : NSMutableDictionary = NSMutableDictionary()
    test1.setValue("Saturday", forKey: "day")
    test1.setValue("8PM - 10PM", forKey: "hour")
    self.availabilityArray.add(test1)

    let test2 : NSMutableDictionary = NSMutableDictionary()
    test2.setValue("Sunday", forKey: "day")
    test2.setValue("2PM - 8PM", forKey: "hour")
    self.availabilityArray.add(test2)

并且在另一种方法中,我尝试获取 "day" 和 "hour" 值以将它们设置为 UILabel

我已经试过了:

let dico = self.availabilityArray[i] //i being the index of a loop, not important here
self.dayNameLabel.text = (dico as AnyObject).object(forKey:"day") // This line does not work, I want to do something like that.

那么我怎样才能得到我的 NSMutableArray 的内容作为 NSDictionary 的精确索引?

谢谢。

感谢 Larme 我找到了解决方案,我只是替换

self.dayNameLabel.text = (dico as AnyObject).object(forKey:"day")

self.dayNameLabel.text = (dico as! NSMutableDictionary).object(forKey:"day") as! String?

您应该使用 swift 2(或 3)个对象。

像这样声明你的数组:

var availabilityArray: [[String: String]] = []

然后创建你的字典:

var test: [String: String] = [:]
test["day"] = "Monday"
test["hour"] = "7PM - 8PM"
var test1: [String: String] = [:]
test1["day"] = "Saturday"
test1["hour"] = "8PM - 10PM"
var test2: [String: String] = [:]
test2["day"] = "Sunday"
test2["hour"] = "2PM - 8PM"

将它们添加到数组中:

self.availabilityArray.append(test)
self.availabilityArray.append(test1)
self.availabilityArray.append(test2)

并最终访问对象:

let dico = self.availabilityArray[0]
self.dayNameLabel.text = dico["day"]

dico["day"] 是可选的,所以使用 dico["day"]! 或使用 if let

的真正解包