У меня есть nsmutablearray, к которому я добавляю объект в цикле for из nsarray. Я хочу, чтобы он добавил объект, пока не достигнет NSNotFound
в indexOfObject: from NSArray.
Массив находится внутри цикла for для извлечения строки из каждого индекса.
Мой код:
NSInteger untilNotFound = NSNotFound;
NSUInteger index = [array indexOfObject:string];
for (index; index < untilNotFound; index ++)
{
[self.mutablearray addObject:[array objectAtIndex: index]];
}
Edit:
for (string in array)
{
NSComparisonResult *result = [string compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
range:NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame)
{
NSInteger index;
for (index =[array indexOfObject:string]; (index < [array count] && index < 100 && index!= NSNotFound); index ++)
{
[self.mutablearray addObject:[array objectAtIndex: index]];
}
break;
}
}
EDIT.
Мой предыдущий код, который работает, находится внутри if (result == NSOrderedSame). Мне просто интересно, есть ли какое-нибудь более приятное и простое в использовании решение для извлечения индексов непосредственно перед тем, как оно достигнет NSNotFound:
NSUInteger new = [array indexOfObject:string];
NSString *last = [array lastObject];
NSUInteger total = [array indexOfObject:last];
NSUInteger newmax = new + 10;
NSUInteger totalminus = total - 11;
if (newmax <= totalminus )
{
[self.mutablearray addObject:string];
[self.mutablearray addObject:[array objectAtIndex:new + 1]];
[self.mutablearray addObject:[array objectAtIndex:new + 2]];
[self.mutablearray addObject:[array objectAtIndex:new + 3]];
[self.mutablearray addObject:[array objectAtIndex:new + 4]];
[self.mutablearray addObject:[array objectAtIndex:new + 5]];
[self.mutablearray addObject:[array objectAtIndex:new + 6]];
[self.mutablearray addObject:[array objectAtIndex:new + 7]];
[self.mutablearray addObject:[array objectAtIndex:new + 8]];
[self.mutablearray addObject:[array objectAtIndex:new + 9]];
[self.mutablearray addObject:[array objectAtIndex:new + 10]];
}
else
{
[self.mutablearray addObject:string];
}