我有一个类型为[[String:AnyObject]]的字典数据,格式如下,我的应用程序崩溃时出现“致命错误:字典文字包含重复的密钥”每当我运行我的应用程序时。< / p>
我尝试手动删除重复数据(超过3000条记录:-()但这不起作用,因为我可能错过了一两个重复记录。
[
"id": "1",
"alpha": "A",
"title": "Title",
"SubTitle": "Sub Title",
"Text": "My Text"
],
[
"id": "2",
"alpha": "B",
"title": "Title",
"SubTitle": "Sub Title",
"Text": "My Text"
]
任何有关如何使用代码从字典中删除重复键的指南都将受到高度赞赏。
答案 0 :(得分:2)
这是一种在不改变所有原始文字的情况下找到罪魁祸首的方法:
首先,设置字典数组的类型如下:
let dictionaries : [DictionaryLiteral<String, AnyObject>] = [
[
"id": "1",
...
然后运行以下代码:
for (i, dict) in dictionaries.enumerate() {
var keys = Set<String>()
for (key, _) in dict {
if keys.contains(key) {
print("dict[\(i)] contains duplicate key: \"\(key)\"")
} else {
keys.insert(key)
}
}
}
我应该指出你的重复键。