Swift引用字典键和值而不知道键
发布时间:2020-12-14 04:33:03 所属栏目:百科 来源:网络整理
导读:我有一个字典数组定义为 var users = [[String:String]]() 数组中的Dictionary是一个简单的用户名是/否标志 ?????[[1stUser:Y],[2ndUser:N],[3rdUser:N]] 在我的TableView单元配置中,我定义了 let userRecord = users[indexPath.row] as NSDictionary 并
我有一个字典数组定义为
var users = [[String:String]]() 数组中的Dictionary是一个简单的用户名是/否标志 在我的TableView单元配置中,我定义了 let userRecord = users[indexPath.row] as NSDictionary 并需要 检查标志(是/否),如果是> cell.accessoryType = UITableViewCellAccessoryType.Checkmark 在上面的例子中,我应该只在1stUser旁边打勾. 问题是如何在不事先知道它们的情况下引用字典键(‘1stUser’,’2nduser’等)并检查值(Y / N)?我所看到的所有Swift字典示例都假设我们知道检索其值的实际密钥(例如用户[“1stUser”]没有帮助,因为我事先并不知道1stUser有一个Y). 解决方法
你应该总是知道你的字典键.如果不这样做,那么您构建的数据就是错误的 – 未知数据应始终位于字典的值中,而不是键.
请考虑使用带有两个键的字典:“username”和“flag”. 示例代码: var users = [[String:String]]() users.append(["username" : "Aaron","flag" : "yes"]) users.append(["username" : "AspiringDeveloper","flag" : "yes"]) let userRecord = users[1] let username = userRecord["username"]! let flag = userRecord["flag"]! 或者,您可以构建一个基本类并完全避免使用字典: class User { let username: String let flag: Bool init(username:String,flag:Bool) { self.username = username self.flag = flag } } var users = [User]() users.append(User(username: "Aaron",flag: true)) users.append(User(username: "AspiringDeveloper",flag: true)) let userRecord = users[1] let username = userRecord.username let flag = userRecord.flag (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |