我用这行代码将indexPath.row附加到字典的数组中。

var downloadQ = [Int: [Int]]()
var id = 1

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    downloadQ[id]?.append(indexPath.row)
    print("downloadQ:\(downloadQ)")

}

和这行检查。
print("downloadQ:\(downloadQ)")

但是我的数组没有在控制台中追加indexPath.row我得到了这个downloadQ:[:]
如何解决?

最佳答案

创建字典时,字典最初是空的,也就是说,它不包含任何键的任何数组。

当您说downloadQ[id]?.append(indexPath.row)时,downloadQ[id]nil,因为您从未存储过密钥id的数组。由于您已经有条件地解包了downloadQ[id],因此将忽略该追加。

您需要处理键没有数组的情况。 nil合并运算符是执行此操作的好方法。就像是

var theArray = downloadQ[id] ?? [Int]()
theArray.append(indexPath.row)
downloadQ[id] = theArray

关于ios - 在字典内的数组中附加int,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49462035/

10-09 00:56