在不知道键的情况下快速引用字典键和值

2024-04-22

我有一个字典数组定义为

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(使用前将#替换为@)

在不知道键的情况下快速引用字典键和值 的相关文章

随机推荐

  • Android.mk 与 Application.mk

    我对 Android mk 和 Application mk 的使用有点模糊 我尝试阅读 APPLICATION MK HTML ANDROID MK HTML 在NDK 附带的文档 http developer android com s
  • 如何将类元数据转换为 JSON 字符串

    如何生成类元数据的 JSON for eg C 类 public class Product public int Id get set public string Name get set public bool IsActive get
  • WebClient 最大连接池限制?

    如果远程服务阻塞 我可以发送多少个并发请求 意思是 什么是最大连接数spring在使用时内部使用的池限制WebClient Autowired private WebClient webClient webClient post uri u
  • 卸载 Magento 自定义扩展及其数据库

    我创建了一个扩展并创建了扩展的 zip 文件 以便我可以通过 Magento Connect 安装它 当我使用 Magento Connect 卸载自定义扩展时 它只会删除我的扩展文件和文件夹 但不会删除我的扩展的数据库表 我还想删除我的数
  • 如何在react 16.4.1中使用leaflet-polylinedecorator

    我正在尝试在react 16 4 1中使用传单插件polylinedecorator 所以没有钩子 然而 我能找到的关于如何在 React 中使用此插件的唯一示例是使用钩子 请参阅 如何将 Polylinedac orator 与 Reac
  • 在 Windows 中更改 Angular 项目中的任何内容时,Docker 不会重新编译

    我正在尝试对您的角度应用程序进行 dockerize 为此我创建了一个 Dockerfile 但每当我尝试编辑或更新任何组件时 它都不会编译我的角度应用程序 这是泊坞窗文件 FROM node latest RUN mkdir usr sr
  • MPI+CUDA 与纯 MPI 相比有何优势?

    加速应用程序的常用方法是使用 MPI 或更高级别的库 例如在幕后使用 MPI 的 PETSc 并行化应用程序 然而 现在每个人似乎都对使用 CUDA 来并行化他们的应用程序或使用 MPI 和 CUDA 的混合来解决更雄心勃勃 更大的问题感兴
  • 将原型 bean 自动装配到原型 bean 中?

    我正在使用一些现有的代码 它正在做我以前从未见过的事情 我已经使用方法注入将原型 bean 自动装配到单例中 或者使用 getBean 从上下文中获取 bean 我在这段代码中看到的是一个 bean 它是一个原型并使用 getBean 检索
  • 如何从 Survey Monkey 调查中获取受访者 ID?

    故事 我正处于为我公司正在制定的零售商激励计划创建视频教学引擎的初始阶段 其运作方式是零售商将注册并获得登录系统以访问内容的能力 登录后 零售商将观看有关我公司产品的短视频 然后他们将被要求回答有关该产品的 3 或 4 个问题 我们的想法是
  • PHP 将字符串解析为条件运算符

    我有一个表单 用户可以在其中创建自己的条件 例如
  • 绘制 matplotlib 图表以显示直方图箱中的总计数

    我正在尝试显示直方图 下面的数组是直方图每个单独箱的计数 binVals 0 5531608 6475325 1311915 223000 609638 291151 449434 1398731 2516755 3035532 29769
  • 如何制作轨道时间戳

    make 如何保留文件的时间戳 我正在尝试将我的 git 存储库部署到位 我正在为大多数不会改变的文件添加预编译的二进制文件 现在 当我从 git 签出存储库时 我不想编译这些 c 文件 我想使用这些预构建的二进制文件 因此 为了设置这个方
  • 如何在 MATLAB 中调整矩阵大小?

    假设我有一个1 by 12矩阵 我想将其调整为4 by 3矩阵 我怎么能这样做呢 我当前的解决方案有点丑陋 for n 1 length mat 3 out n 1 3 mat n 1 3 1 n 1 3 3 end 有一个更好的方法吗 r
  • JSF:使用 ajax 清除 inputTextArea 时出现奇怪的行为

    这是我所拥有的
  • 点击链接后如何导航回来?

    我对在 vba 中使用 IE 还很陌生 所以有时我很难纠正在编写从网络上抓取数据的代码时所犯的任何错误 我编写了一些代码来单击标题下 20 个链接中的每个视频链接Microsoft computer training videos可以在它的
  • 在硒自动化中,鼠标箭头移动是否可以用于测试用例

    我是硒的新手 我想知道如何向用户显示鼠标箭头移动 我的意思是说我们自动化某些事情 我想知道如何向用户显示鼠标箭头移动看到硒中正在进行的自动化 是否可以 我们能否清楚地显示正在单击的内容 我的意思是通过鼠标箭头移动单击了哪个按钮 我希望我很清
  • 更改为服务器端后如何获取标签文本?

    我试图在不回发时将标签的文本分配给隐藏字段 但失败了 这就是我所做的 If Not IsPostBack Then Dim structPayperiod As strcPayperiodDet structPayperiod objTim
  • 使用 ddply 进行汇总统计

    我喜欢使用编写一个函数ddply根据两列的名称输出汇总统计信息data frame mat mat是一个大data frame与列的名称 metric length species tree index index是具有 2 个水平的因子
  • 如何在 jQuery UI 中将多个可排序列表相互连接?

    我是 jQuery 新手 并且在使用 jQuery UI 时遇到了很大的困难sortable 我正在尝试整理一个页面以方便对项目进行分组和排序 我的页面有一个组列表 每个组都包含一个项目列表 我希望允许用户能够执行以下操作 重新排序组 对组
  • 在不知道键的情况下快速引用字典键和值

    我有一个字典数组定义为 var users String String 数组内的字典是一个简单的用户名 是 否标志 第一个用户 Y 第二个用户 N 第三个用户 N 在我的 TableView 单元格配置中 我定义了 let userReco