Кажется очень случайным, как упорядочено IBOutletCollection.Возможно, я неправильно понимаю методологию Ника Локвуда - но я также создал новый проект, добавил группу UILabels и соединил их с коллекцией в том порядке, в котором они были добавлены в представление.
После регистрации,Я получил случайный заказ.Это очень расстраивало.
Мой обходной путь - установка тегов в IB, а затем сортировка коллекций следующим образом:
[self setResultRow1:[self sortCollection: [self resultRow1]]];
Здесь resultRow1 - это IBOutletCollection из приблизительно 7 меток, с тегами, установленными черезтам жеВот метод сортировки:
-(NSArray *)sortCollection:(NSArray *)toSort {
NSArray *sortedArray;
sortedArray = [toSort sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
NSNumber *tag1 = [NSNumber numberWithInt:[(UILabel*)a tag]];
NSNumber *tag2 = [NSNumber numberWithInt:[(UILabel*)b tag]];
return [tag1 compare:tag2];
}];
return sortedArray;
}
Теперь я могу получить доступ к объектам, используя [resultRow1 objectAtIndex: i]
или что-то подобное.Это избавляет от необходимости перебирать и сравнивать теги каждый раз, когда мне нужен доступ к элементу.