转换字典阵列除去键值
问题描述:
我需要从阵列中的每个的索引中删除第一三个键值之后。我所做的是转换字典阵列除去键值
for (int i=0; i<[normalscoringarray count]; i++)
{
NSDictionary *dictionary = [normalscoringarray objectAtIndex:i];
NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];
[mutableDictionary removeObjectForKey:@"cn"];
[mutableDictionary removeObjectForKey:@"gdate"];
[mutableDictionary removeObjectForKey:@"gid"];
NSLog(@"mutableDictionary.....%@",mutableDictionary);
NSMutableArray *remainingArray = [[NSMutableArray alloc]init];
for (id item in mutableDictionary) {
[remainingArray setArray:[mutableDictionary objectForKey:item]];
}
}
它并没有给我剩余数组的顺序,我想要更多的移除所有的键。
normalscoringarray....(
{
cn = "Ranjit Garh";
gdate = "2012-03-25";
gid = 1;
id = 1;
p1nets = "3,3,4,4,2,2,2,4,3,3,4,2,5,3,5,4,3,4||27||33||60";
p1nh = "BP||14||1";
p1score = "4,4,5,5,3,3,3,5,4,4,5,3,5,3,6,4,4,5||36||39||75||61";
p1spoints = "3,3,3,2,3,4,3,3,3,3,2,4,1,2,2,1,3,3||27||21||48";
p2nets = "4,3,4,4,3,4,2,5,4,4,3,3,4,3,6,3,4,4||33||34||67";
p2nh = "DG||18||2";
p2score = "5,4,5,5,4,5,3,6,5,5,4,4,5,4,7,4,5,5||42||43||85||67";
p2spoints = "2,3,3,2,2,2,3,2,2,2,3,3,2,2,1,2,2,3||21||20||41";
p3nets = "4,3,6,4,2,3,2,4,5,4,3,5,6,3,4,3,5,6||33||39||72";
p3nh = "NM||24||3";
p3score = "6,5,7,6,4,5,3,6,6,5,5,6,7,4,5,4,6,7||48||49||97||73";
p3spoints = "2,3,1,2,3,3,3,3,1,2,3,1,0,2,3,2,1,1||21||15||36";
p4nets = "3,4,5,4,2,3,3,5,3,4,3,5,4,3,5,3,4,6||32||37||69";
p4nh = "KS||20||4";
p4score = "5,5,6,5,3,5,4,6,4,5,5,6,5,4,6,4,5,7||43||47||90||70";
p4spoints = "3,2,2,2,3,3,2,2,3,2,3,1,2,2,2,2,2,1||22||17||39";
},
{
cn = "Eden Garden";
gdate = "2012-03-26";
gid = 2;
id = 2;
p1nets = "3,2,5,3,1,2,2,4,4,3,4,3,5,2,5,3,3,5||26||33||59";
p1nh = "NM||24||3";
p1score = "5,4,6,5,3,4,3,6,5,4,5,4,6,3,6,4,4,6||41||42||83||59";
p1spoints = "3,4,2,3,4,4,3,3,2,3,2,3,1,3,2,2,3,2||28||21||49";
p2nets = "2,4,5,3,2,4,3,4,4,4,3,3,5,2,5,3,4,4||31||33||64";
p2nh = "KS||20||4";
p2score = "4,5,6,4,3,6,4,5,5,5,4,4,6,3,6,4,5,5||42||42||84||64";
p2spoints = "4,2,2,3,3,2,2,3,2,2,3,3,1,3,2,2,2,3||23||21||44";
p3nets = "3,4,5,5,3,5,4,5,5,5,4,5,5,4,5,3,5,6||39||42||81";
p3nh = "AK||18||5";
p3score = "4,5,6,6,4,6,5,6,6,6,5,6,6,5,6,4,6,7||48||51||99||81";
p3spoints = "3,2,2,1,2,1,1,2,1,1,2,1,1,1,2,2,1,1||15||12||27";
p4nets = "2,4,5,4,3,3,3,5,5,4,3,5,4,3,5,4,5,6||34||39||73";
p4nh = "KR||20||6";
p4score = "4,5,6,5,4,5,4,6,6,5,4,6,5,4,6,5,6,7||45||48||93||73";
p4spoints = "4,2,2,2,2,3,2,2,1,2,3,1,2,2,2,1,1,1||20||15||35";
},
)
的方式,我想
normalscoringarray....(
id = 1,
p1nets = "3,3,4,4,2,2,2,4,3,3,4,2,5,3,5,4,3,4||27||33||60",
p1nh = "BP||14||1",
p1score = "4,4,5,5,3,3,3,5,4,4,5,3,5,3,6,4,4,5||36||39||75||61",
p1spoints = "3,3,3,2,3,4,3,3,3,3,2,4,1,2,2,1,3,3||27||21||48",
p2nets = "4,3,4,4,3,4,2,5,4,4,3,3,4,3,6,3,4,4||33||34||67",
p2nh = "DG||18||2",
p2score = "5,4,5,5,4,5,3,6,5,5,4,4,5,4,7,4,5,5||42||43||85||67",
p2spoints = "2,3,3,2,2,2,3,2,2,2,3,3,2,2,1,2,2,3||21||20||41",
p3nets = "4,3,6,4,2,3,2,4,5,4,3,5,6,3,4,3,5,6||33||39||72",
p3nh = "NM||24||3",
p3score = "6,5,7,6,4,5,3,6,6,5,5,6,7,4,5,4,6,7||48||49||97||73",
p3spoints = "2,3,1,2,3,3,3,3,1,2,3,1,0,2,3,2,1,1||21||15||36",
p4nets = "3,4,5,4,2,3,3,5,3,4,3,5,4,3,5,3,4,6||32||37||69";
p4nh = "KS||20||4";
p4score = "5,5,6,5,3,5,4,6,4,5,5,6,5,4,6,4,5,7||43||47||90||70",
p4spoints = "3,2,2,2,3,3,2,2,3,2,3,1,2,2,2,2,2,1||22||17||39",
)
答
NSMutableArray *remainingArray = [[NSMutableArray alloc]init];
for (int i=0; i<[normalscoringarray count]; i++)
{
NSMutableDictionary *mutableDictionary = [[NSMutableDictionary alloc] initWithDictionary:[normalscoringarray objectAtIndex:i]]; //each time alloc and init with contents of normalscoringarray
//Remove values for keys
[mutableDictionary removeObjectForKey:@"cn"];
[mutableDictionary removeObjectForKey:@"gdate"];
[mutableDictionary removeObjectForKey:@"gid"];
[remainingArray addObject:mutableDictionary]; //add mutableDictionary to remainingArray
[mutableDictionary release]; //free mutableDictionary
}
//finally print contents of remainingArray
NSLog(@"normalscoringarray:\n%@",[remainingArray description]);
希望这会帮助你的!
答
for (int i=0; i<[normalscoringarray count]; i++)
{
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithDictionary:[normalscoringarray objectAtIndex:i]];
[dictionary removeObjectForKey:@"cn"];
[dictionary removeObjectForKey:@"gdate"];
[dictionary removeObjectForKey:@"gid"];
[normalscoringarray replaceObjectAtIndex:i withObject:dictionary];
}
另外,不要忘记释放remainingArray,当你不再需要它。 – Hemang 2012-03-29 11:07:30
Ketan,你在你的问题中询问你想要结果的方式,但我不明白你为什么需要这种格式?因为您可以直接通过其密钥访问任何值。 – Hemang 2012-03-29 11:12:05
我真的想申请'for循环'每个键检查的目的这就是为什么我需要所有的键阵列...但我没有得到它。 – Ketan 2012-03-29 12:20:25