当前位置: 首页 > 面试题库 >

Swift字典:以数组形式获取值

暨曾笑
2023-03-14
问题内容

我有一本字典,其中包含UIColor用枚举值散列的对象ColorScheme

var colorsForColorScheme: [ColorScheme : UIColor] = ...

我希望能够提取此字典包含的所有颜色(值)的数组。我以为我可以使用该values属性,就像遍历字典值(for value in dictionary.values {...})一样,但这会返回错误:

let colors: [UIColor] = colorsForColorSchemes.values
                        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
'LazyBidrectionalCollection<MapCollectionView<Dictionary<ColorScheme, UIColor>, UIColor>>' is not convertible to 'UIColor'

似乎Arrayvalues方法返回了一个更抽象的集合类型,而不是返回值的an 。有没有一种方法可以获取Array包含字典值的而不for- in循环提取它们的值?


问题答案:

从Swift
2.0开始,Dictionaryvalues属性现在返回LazyMapCollection而不是LazyBidirectionalCollection。该Array类型知道如何使用此抽象集合类型进行初始化:

let colors = Array(colorsForColorSchemes.values)

Swift的类型推断已经知道这些值是UIColor对象,因此不需要类型转换。这很好!



 类似资料:
  • json响应:“result”:{ 代码:使用这段代码,我会得到上面这样的响应,意味着所有数组都来了...但在这里我需要如何获得它…如果我运行循环得到错误..请帮忙 如何从上面的字典数组中获取值

  • 问题内容: 我正在使用[UIImage:UIImage]类型的快速字典,并且正在尝试查找给定值的特定键。在Objective- C中,我可以使用allKeysForValue,但是Swift字典似乎没有这种方法。我应该使用什么? 问题答案: Swift 3:针对双射字典的特殊情况,性能更高 如果反向字典查找用例涵盖了在键和值之间具有一对一关系的双射字典,那么穷举收集操作的另一种方法是使用更快的短路

  • 获取对象的类名为,使用: 返回如下内容: 我正在寻找纯版本:。我如何得到一个清理过的类名字符串呢? 我发现了一些关于这个的问题,但没有真正的答案。难道一点都不可能吗?

  • 问题内容: 是否可以在表单类中获取request.user数据?我想清理一个电子邮件地址以确保它是唯一的,但是如果它是当前用户的电子邮件地址,则它应该通过。 这是我目前拥有的东西,非常适合创建新用户,但是如果我要编辑用户,则会遇到他们的电子邮件无法验证的问题,因为它已经被采用。如果我可以使用request.user.email检查这是他们的电子邮件,则可以解决我的问题,但是我不确定该怎么做。 问题

  • 问题内容: 我正在尝试检索所有联系人的姓名和电话号码,并将它们放入iOS中的Swift数组中。我到目前为止已经做到了: 完成后,将完全包含我所有联系人姓名的数组。即“ John Doe”。但是,返回一个值数组,例如 我想知道如何仅将电话号码作为字符串值即“ XXXXXXXXXX”来检索。基本上,如何调用数字值。谢谢! 问题答案: 我找到了解决方案:

  • 问题内容: xml看起来像这样: 我正在使用stax一次处理一个“ ”,并且可以正常工作。我需要以字符串的形式获取整个语句节点,以便创建“ 123.xml”和“ 456.xml”,甚至可以将其加载到按帐户索引的数据库表中。 使用这种方法:http : //www.devx.com/Java/Article/30298/1954 我正在寻找做这样的事情: 问题答案: 为什么不只使用xpath? 您可