我正在使用Swift和Firebase。我目前正将我的firebase快照对象存储在全局字典中。我们的想法是根据一个或多个键的值过滤这些对象。
例如,pendingFilter()可能会返回“pending”键等于true的所有对象,并忽略其余对象。
数组创建如下:
var array = [NSDictionary]()
所有对象都附加为AnyObject。
我当前的字典看起来像这样:
[{
accepted = false;
cancelled = false;
id = "1";
pending = true;
}, {
accepted = false;
cancelled = false;
id = "2";
pending = true;
}, {
accepted = true;
cancelled = false;
id = "3";
pending = false;
}]
在我的过滤器功能中,我知道我可以使用for-in迭代每个项目,但是如何进行过程,然后按对象本身的键值进行过滤?有一个首选的Swifty方式吗?我知道项目中的(关键,值),但这似乎严格地针对字典而不是对象。
感谢您的帮助......
答案 0 :(得分:3)
您可以使用filter
仅将字典pending
的值设置为true
的字典。
var pendingFilter: [NSDictionary] {
return array.filter { $0.value(forKey: "pending") as? Bool == true }
}