我在查找数组的索引时遇到问题。 我的数组看起来像这样:
{"[NAME][NAME]", NSArray, NSArray}
我必须获取对象的索引,其中字符串等于此关联数组的第一个元素。
我尝试过使用for循环,并计算整数,但每次都不起作用:/
编辑: 这是我用来查找索引的部分:
int tempIndex = -1, indexCount = 0;
for(NSArray *tempName in ABMembers){
if([tempName[0] isEqualToString:memberName]){
tempIndex = indexCount;
break;
} else {
indexCount ++;
}
}
编辑2: 很抱歉,我刚刚发现我的问题是什么..数组是动态生成的,字符串也必须要比较,字符串不相同。那就是问题所在。所以在这里使用任何代码应该工作。对不起
答案 0 :(得分:0)
像这样更改你的数组,
NSArray *array1 = @[@"Name 3",@"Name 4",@"Name 5",@"Name 6",@"Name 7"];
NSArray *array2 = @[@"Name 8",@"Name 9",@"Name 10",@"Name 11",@"Name 12"];
NSMutableArray *abMembers = [[NSMutableArray alloc] init];
[abMembers addObject:@"Name 1"];
[abMembers addObject:@"Name 2"];
[abMembers addObjectsFromArray:array1];
[abMembers addObjectsFromArray:array2];
在adMembers数组中搜索名称
NSString *nameToCheck = @"Name 5";
int foundIndex = -1;
for(NSString *s in abMembers){
if([s isEqualToString:nameToCheck]){
foundIndex = [abMembers indexOfObject:s];
break;
}
}
NSLog(@"found: %d", foundIndex);
答案 1 :(得分:0)
我猜你正在寻找类似的东西......
NSArray *arr1 = [NSArray arrayWithObjects:@"One", @"Two", nil];
NSArray *arr2 = [NSArray arrayWithObjects:@"Three", @"Four", nil];
NSArray *arr = [NSArray arrayWithObjects:@"[NAME][NAME]",arr1, arr2, nil];
// A loop Through array
for(id Obj in arr)
{
NSLog(@"Object %@ at %d",Obj,[arr indexOfObject:Obj]);
}
如果你知道对象
// Direct index for object
NSLog(@"Index of Arr1 %d",[arr indexOfObject:arr1]);
NSLog(@"Index of String %d",[arr indexOfObject:@"[NAME][NAME]"]);
答案 2 :(得分:0)
检查一下,我认为这会对你有所帮助:
for (int i = 0; i < [ABMembers count]; i++){
if ([[ABMembers objectAtIndex:i] isKindOfClass:[NSString class]]){
//compare the strings you want
}
else if ([[ABMembers objectAtIndex:i] isKindOfClass:[NSArray class]]){
//you can do the the stuff with the arrays in your ABMembers array
}
}