我有一个字典数组定义为
var users = [[String:String]]()
数组内的字典是一个简单的用户名+是/否标志
[[第一个用户:Y],[第二个用户:N],[第三个用户:N]]
在我的 TableView 单元格配置中,我定义了
let userRecord = users[indexPath.row] as NSDictionary
并且需要
分配cell.textlabel.text = username(字典的键)
检查标志(Y/N),如果是> cell.accessoryType = UITableViewCellAccessoryType.Checkmark
在上面的示例中,我应该仅在 1stUser 旁边获得一个复选标记。
问题是如何在事先不知道字典键(“1stUser”、“2nduser”等)的情况下引用它们并检查值(Y/N)?我见过的所有 Swift 字典示例都假设我们知道检索其值的实际键(例如 users["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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)