我有一个混合类型的字典(字符串、NSImage和数组)。当追加到数组时,我得到错误“Value of type”Any??'没有成员'append''。我不知道如何将“file_list”值转换为数组,以便可以向其追加值。
var dataDict: [String:Any?] = [
"data_id" : someString,
"thumbnail" : nil,
"file_list" : [],
]
// do stuff... find files... whirrr wizzzz
dataDict["thumbnail"] = NSImage(byReferencingFile: someFile)
dataDict["file_list"].append( someFile ) <- ERROR: Value of type 'Any??' has no member 'append'
最佳答案
不能。您需要首先获取键值,从Any
转换为[String]
,附加新值,然后将修改后的数组值分配给键值:
if var array = dataDict["file_list"] as? [String] {
array.append(someFile)
dataDict["file_list"] = array
}
或
if let array = dataDict["file_list"] as? [String] {
dataDict["file_list"] = array + [someFile]
}
另一个选项是按照OOPer注释中的建议创建自定义结构
关于swift - 如何更新混合类型(特别是数组)的Swift字典值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51716448/