【发布时间】:2017-08-26 03:06:55
【问题描述】:
我正在将我的数据从一种格式迁移到另一种格式,以便对我的一个 iOS 应用进行大规模更新。这意味着当用户更新他们的应用程序时,它会将他们的数据迁移到新位置。这个新位置有更严格的规则并使用正确的做法(基本上,当我第一次创建应用程序时,我是一个菜鸟,目前数据库中有一些不好的做法,这个新位置仅用于良好的数据)。
我的一切都很好地迁移,一切正常,除了我需要做最后一件事。我保存到数据库的大字典(它使用 firebase fyi)在任何地方都存储了 -1.0,应该有一个 nil 值(不好,我知道)。我需要做的是遍历整个字典并删除该键的值为-1.0的任何键。
字典的类型是 [AnyHashable : Any],这是 firebase 使用的。
到目前为止我已经尝试过了。
if let data = dataDictionary as? [AnyHashable : Any] {
let foundItems = data.filter { $0.value as? Double == -1.0 }
print(foundItems)
}
计划然后循环遍历找到的 items 数组并从包含它的数据字典中删除任何键。
这是数据字典的样子:
"-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";
};
};
【问题讨论】:
-
你能告诉数据字典它包含什么吗?
-
我已经用示例更新了我的问题。
-
非常类似于stackoverflow.com/questions/31613194/…,但使用了Swift的结构
标签: swift dictionary firebase nsdictionary