Ios 如何检测NSArray中有多少相同的对象
我有一个NSArray,我想知道它有多少个特定的对象 这是我的代码:Ios 如何检测NSArray中有多少相同的对象,ios,objective-c,nsarray,Ios,Objective C,Nsarray,我有一个NSArray,我想知道它有多少个特定的对象 这是我的代码: NSArray *filter = [[NSArray alloc]initWithObjects:@"1",@"2",@"2",@"3",@"2",@"3", nil]; switch (section) { case 0: //check how many 1 object is filter array return //number of 1 object
NSArray *filter = [[NSArray alloc]initWithObjects:@"1",@"2",@"2",@"3",@"2",@"3", nil];
switch (section) {
case 0:
//check how many 1 object is filter array
return //number of 1 object
break;
case 1:
//check how many 2 object is filter array
return //number of 2 object
break;
case 2:
//check how many 3 object is filter array
return //number of 3 object
break;
}
请给我指点一下。听起来你想使用:NSCountedSet 如果您已经拥有阵列,则可以执行以下操作:[NSCountedSet setWithArray:array]您可以使用NSPredicate:
顺便说一下,在switch内部的return语句之后不需要中断。该方法将返回,因此以下情况无论如何都无法达到。什么构成重复-是特定对象还是isEqual返回true的不同对象?这仅在同一对象有多个实例时有效。NSCountedSet不考虑等质量。例如,它可以正确地处理问题中显示的字符串文本,但不能处理任意NSString,即使它们包含相同的字符串value@Paulw11:你确定吗?我用两个内容相同的不同字符串进行了测试,得到了一个包含一个对象的计数集,计数=2。
NSCountedSet *filter = [NSCountedSet setWithObjects:@"1",@"2",@"2",@"3",@"2",@"3", nil];
NSLog(@"%@", @([filter countForObject:@"2"])); // Outputs 3
switch (section) {
case 0:
NSArray *ones = [filter filteredArrayUsingPredicate:[NSPredicate predicateWithFormat: @"SELF = %@", @"1"]];
return [ones count];
case 1:
//and so on