假设我有一个充满动物对象的NSArray,它们的名字是字符串属性。 当我遍历数组时,我如何获得类似名称的运行记录?
猫 - 鲍勃数:1
狗 - 莎莉伯爵:1
猫 - 鲍勃数:2
兔子 - 鲍勃数:3
鱼 - 莎莉伯爵:2
如果名称是动态的,而不是静态的,我将如何得到这些整数?
答案 0 :(得分:1)
最直接的方法是使用NSMutableDictionary。对于每个名称,尝试从字典中获取该名称的NSNumber。如果找到一个,添加1并将其存回;如果没有,请创建一个值为1的新值并存储它。
答案 1 :(得分:0)
我猜你可以使用NSMutableDictionary来保存名字的数量。
类似的东西:
NSMutableDictionary *dic = [[NSMutableDictionary alloc] initWithCapacity:10];
NSString *name = [NSString stringWithFormat:@"Bob"];
NSNumber *number = (NSNumber *)[dic objectForKey:name];
if (number == nil) // There is no occurrence of the name in Dictionary
{
number = [NSNumber numberWithInt:1];
[dic setObject:number forKey:name];
}
else // There is already an occurrence of the name in dictionary, so increment counter
{
number = [NSNumber numberWithInt:(number.intValue + 1)]; // Increments counter for Name
[dic objectForKey:name];
}
“NSNumber * number =(NSNumber *)[dic objectForKey:name]”行检索特定名称出现的次数。
你也可以使用[dic allKeys];检索该词典中的所有名称。