我有以下词典,其中有很多子词典。
如何删除其中的对象isChanged = 1
从父字典中使用NSPredicate
?
{
"0_496447097042228" = {
cellHeight = 437;
isChanged = 1;
};
"100000019882803_193629104095337" = {
cellHeight = 145;
isChanged = 0;
};
"100002140902243_561833243831980" = {
cellHeight = 114;
isChanged = 1;
};
"100004324964792_129813607172804" = {
cellHeight = 112;
isChanged = 0;
};
"100004324964792_129818217172343" = {
cellHeight = 127;
isChanged = 0;
};
"100004324964792_129835247170640" = {
cellHeight = 127;
isChanged = 1;
};
}
作为使用 NSPredicate 的简单替代方案,您可以使用内置的 NSDictionarykeysOfEntriesPassingTest:
这个答案假设“isChanged”是一个 NSString,值 0 或 1 是一个 NSNumber:
NSSet *theSet = [dict keysOfEntriesPassingTest:^(id key, id obj, BOOL *stop) {
return [obj[@"isChanged"] isEqualToNumber: @1];
}];
返回的集合是通过测试的键列表。从那里,您可以删除所有与以下内容匹配的内容:
[dict removeObjectsForKeys:[theSet allObjects]];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)