ios - 将单个 Dictionary 元素放入变量中
问题描述
我有一个变量:
reas : [String:[User]]?
我想对其进行排序并将其放入另一个视图控制器变量中
vc.OrederReas = reas.sorted { $0.1.count > $1.1.count }
我收到 orderReas 需要是类型的错误
[Dictionary<String, [User]>.Element]()
我所做的,现在我想从 orderReas 中放置一个信号元素(应该是 String:[User],有时可能是所有元素,但这不是问题)。
但我不知道如何定义它,我收到以下错误:
Cannot assign value of type 'Dictionary<String, [User]>.Element' (aka '(key: String, value: Array<User>)') to type '[Dictionary<String, [User]>.Element]' (aka 'Array<(key: String, value: Array<User>)>')
但我不能将变量定义为
var OrederReas = Dictionary<String, [User]>.Element
总而言之,我想要一个包含 [String:[User]] 的变量,将他分类为另一个变量,另一个变量将包含一个元素或原始变量中的所有元素。
谢谢!
解决方案
当您对字典进行排序时,结果将是键和值的数组元组。在你的情况下,如果你想拥有相同类型的字典,你可以将你的 Result(Tuple) 转换为字典,这样你就可以这样做:
let tupleOrederReas = reas.sorted { $0.value.count > $1.value.count }
let dictionaryOrederReas = tupleOrederReas.reduce(into: [:]) { $0[$1.key] = $1.value }
//Finally Pass the Dictionary to VC variable
vc.OrederReas = dictionaryOrederReas
推荐阅读
- android - 如何从通知中删除“+999”?
- c# - IdentityServer4 角色的行为如何?
- android - 当 windowSoftInputMode=“adjustResize” 带有半透明动作/导航栏时,显示和隐藏键盘需要时间
- image - 如何根据我的预测获得 ROI 坐标?
- c++ - 当我打印字符串时,我不知道它是什么输出
- command-prompt - 无法解决:无法打开包含文件:'corecrt.h':没有这样的文件或目录
- typescript - “package.json”清单文件的 TypeScript 类型声明?
- java - 如何解决 - ERROR StatusLogger No Log4j 2 configuration file found
- python - 如何生成 Python 字典并同时将某些字符串转换为浮点数?
- mysql - 具有条件的行的Mysql部分总和