使用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中做到这一点?
答案 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,在我的情况下,则抛出异常。