如何在Swift中创建字典/地图,将日期作为键,将布尔值作为值?

时间:2016-02-09 07:14:49

标签: java ios swift dictionary maps

使用swift我想制作地图,使用日期作为键,使用布尔值作为值。在java中,我会执行以下操作:

private  Map<Date,Boolean> map = new HashMap<>();

private void add() {
    long today = 9999999l;
    map.put(new Date(today), Boolean.TRUE);
    Boolean result = map.get(new Date(today));
    System.out.println(result);
}

public static void main(String[] args) {
    new Main().add();
}

在swift中我有以下内容:

private var statusOfCells = [NSDate: Bool]()

if let domain = statusOfCells[cell.currentDate] as Bool? {
if (domain){
 doSomething()
 }
}

导致致命错误:在展开Optional值时意外发现nil。

我似乎无法理解可选的展开。我怎么能在swift中做到这一点?

3 个答案:

答案 0 :(得分:1)

快速地图使用示例:

let date = NSDate()
var dict = [NSDate: Bool]()
// Set flag
dict[date] = true
// Check
if let flag = dict[date] where flag == true {
    print("flag is true")
}

答案 1 :(得分:1)

您的数据:

var statusOfCells: [NSDate: Bool] = [:]

附加到词典:

let currentDate = NSDate()
statusOfCells[currentDate] = true

如果您想检查词典的价值并采取相应行动:

if statusOfCells[cell.currentDate] ?? false {
    // Do something
}

它类似于avdyushin的答案,但有点短。

答案 2 :(得分:0)

如果cell.currentDate为null,在我的情况下,则抛出异常。