NSMutableArray objectAtIndex

时间:2016-07-07 14:44:14

标签: ios objective-c

我有索引0上的对象的NSMutableArray“Tag”:索引1上的“data”,“data1”,“data2”:索引2上的“data3”:“data2”...... 我的selected_tag是“data2”。如何获得索引0和2.我使用Tableview在单元格中显示我的结果。 NSLog显示索引9223372036854775807

NSUInteger index = [Tag indexOfObject:chosen_tag];

我的手机:

  UILabel * cellLabel = (UILabel *)[cell viewWithTag:2];
           [cellLabel setText:[Name objectAtIndex:index]];

如果我NSLog我的NSMutableArray标签它显示( "data, data1, data2", "data3", "data2, data3, data4, data5, data6", "" )

这意味着data2在索引0和索引2上。我的问题是我在索引0的第三位有“data2”。

2 个答案:

答案 0 :(得分:1)

  

如何获得索引0和2?

您可以使用indexesOfObjectsPassingTest方法返回NSIndexSet对象:

NSArray *tag = @[@"data, data1, data2", @"data3", @"data2, data3, data4, data5, data6", @""];


NSIndexSet *indexSet = [tag indexesOfObjectsPassingTest:^BOOL(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
    return [[(NSString *)obj componentsSeparatedByString:@", "] containsObject:@"data2"];
}];

NSLog(@"%@", indexSet);

答案 1 :(得分:0)

那个指数

  

9223372036854775807

可能等同于NSNotFound,这意味着标记不在数组中。