我的类别词典就像这样
"category": {
"position": 1,
"updated_at": "2012-11-21T11:02:14+05:30",
"is_default": false,
"name": "Ge",
"folders": [
{
如何单独删除is_default为true的特定Category对象?
我尝试了以下内容 -
for(id obj in category )
{
if([obj isEqualToString:@"is_default"] && [[category objectForKey:@"is_default"] isEqualToNumber:@0])
{
但无法找到访问特定类别的密钥的方法,因此将其删除。
答案 0 :(得分:2)
首先要做的事情: 枚举时无法从Dictionary(或数组或集)中删除对象。
但这并非不可能。
试试这个:
NSArray *keys = [category allKeys];
for(NSString *key in keys )
{
obj = [category objectForKey:key];
if([key isEqualToString:@"is_default"] && [[category objectForKey:@"is_default"] isEqualToNumber:@0])
{
[category removeObjectForKey:key]
}
}
如果您遇到任何问题,请发表评论。
Al The Best。
答案 1 :(得分:0)
您可以像以下一样获取存储对象的键(一个对象可以多次存储在字典中,使用不同的键):
NSArray *keys = [myDictionary allKeysForObject:obj];
现在你有了密钥,删除对象很容易:
if (keys.count > 0) {
[myDictionary removeObjectForKey:keys.lastObject];
}
顺便说一下,搜索字典的值是一个相对较慢的操作。如果经常这样做,字典可能不是最好的数据结构。