我正在将数据从1格式迁移到另一个格式,以便对我的iOS应用程序之一进行大型更新。这意味着当用户更新他们的应用程序时,它将他们的数据迁移到新的位置。这个新的地点有更严格的规则,并使用适当的做法(基本上,当我第一次创建应用程序,我是一个noob,目前在数据库中有不好的做法,这个新的位置仅用于良好的数据)。从NSDictionary/Dictionary中删除所有项目,其中值== -1.0
我有一切都很好地迁移,一切正常,除了我需要做最后一件事。我保存到数据库的大型字典(它使用firebase fyi)在任何地方存储-1.0应该有一个零值(我知道是坏的)。我需要做的是遍历整个字典并删除键值为-1.0的任何键。
字典的类型是[AnyHashable:Any],这是Firebase使用的类型。
到目前为止,我已经尝试过。
if let data = dataDictionary as? [AnyHashable : Any] {
let foundItems = data.filter { $0.value as? Double == -1.0 }
print(foundItems)
}
该计划然后遍历该找到的项目数组,并从包含它的数据字典中删除任何键。
这是数据字典的样子:
"-KpIdh_TQMG4fyfFgkdt" = {
assignments = {
"-KpIgH6uN19OpcuedYe1" = {
assignmentGoal = "-1";
assignmentName = "Information System Proposal";
assignmentResult = 100;
assignmentWeight = 5;
};
"-KpIgJnFlC6fhgS0NWxF" = {
assignmentGoal = "-1";
assignmentName = "Information System";
assignmentResult = "-1";
assignmentWeight = 35;
};
"-KpIgOGSAwg_VSpDWhWR" = {
assignmentGoal = "-1";
assignmentName = "Process Analysis";
assignmentResult = "-1";
assignmentWeight = 30;
};
"-KpIgPhu_3Zxw36xt3O4" = {
assignmentGoal = "-1";
assignmentName = Labs;
assignmentResult = "-1";
assignmentWeight = 10;
};
"-KpIgQoFEdRnLlMAq2VN" = {
assignmentGoal = "-1";
assignmentName = Exam;
assignmentResult = "-1";
assignmentWeight = 20;
};
};
paperColor = 22;
paperGoal = 95;
paperName = "Systems Analysis";
};
};
semesterCode = 17S2;
semesterGoal = 90;
semesterName = "2017 Semester Two";
};
};
,这是它应该是什么样子
"-KpIdh_TQMG4fyfFgkdt" = {
assignments = {
"-KpIgH6uN19OpcuedYe1" = {
assignmentName = "Information System Proposal";
assignmentResult = 100;
assignmentWeight = 5;
};
"-KpIgJnFlC6fhgS0NWxF" = {
assignmentName = "Information System";
assignmentWeight = 35;
};
"-KpIgOGSAwg_VSpDWhWR" = {
assignmentName = "Process Analysis";
assignmentWeight = 30;
};
"-KpIgPhu_3Zxw36xt3O4" = {
assignmentName = Labs;
assignmentWeight = 10;
};
"-KpIgQoFEdRnLlMAq2VN" = {
assignmentName = Exam;
assignmentWeight = 20;
};
};
paperColor = 22;
paperGoal = 95;
paperName = "Systems Analysis";
};
};
semesterCode = 17S2;
semesterGoal = 90;
semesterName = "2017 Semester Two";
};
};
你能显示数据字典它包含什么? – 3stud1ant3
我用示例更新了我的问题。 – Eli
非常类似于https://stackoverflow.com/questions/31613194/remove-values-from-dictionary-in-ios-swift,但使用Swift的结构 – nathan