2012-01-22 3 views
0

У меня массив, я знаю, как считать его элементы, но мне нужно рассчитывать элементы, пока определенное слово:count NSMutableArray размер до или от определенного слова?

NSMutableArray *whatBondInFrame; 

whatBondInFrame=[NSMutableArray arrayWithObjects:@"red",@"red",@"red",@"gray",@"red",@"ran",@"gray",@"gray",nil]; 

Я знаю [ whatBondInFrame count]но, скажем, я хочу знать, сколько элементов У меня есть до первого серого или от слово «побежал».

Как я могу это получить?

ответ

1

Это не проверял, но он должен работать:

int loc = 0; 
for (loc; loc < [array count]; loc++) { 
    NSString *str = [array objectAtIndex:loc]; 
    if ([str isEqualToString:@"ran"]) 
     break; 
} 
int length = array.count-loc; 

это дает count от первого элемента с именем RAN. Если вы хотите знать, сколько элементов есть раньше (до) слово «побежал», то заменить последнюю строку с

int length = loc 
+0

спасибо большое, что хороший, но я хотел что-то, что яблоко дает вам, сделать это просто. Спасибо, в любом случае . – Curnelious

+0

Нет, для этого нет конкретного API. Ive добавил некоторую информацию к моему ответу – JonasG

1

NSArray метод:

- (NSUInteger)indexOfObject:(id)anObject 

Вернется индекс первое появление на объекте, так что вы можете сделать:

NSUInteger firstRanIndex = [whatBondInFrame indexOfObject:@"ran"]; 

Существует метод компаньон:

- (NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range 

Это ограничивает поиск заданным диапазоном массива. Нет способа найти последнее вхождение, потому что вы должны выполнить цикл с помощью вышеуказанных методов.

В сочетании с методом count вы можете получить номера, которые вы хотите.

Смежные вопросы