// create NSMutableArray* of score UILabel items, called "scoreLabels"
NSMutableArray *scoreLabels = [NSMutableArray arrayWithCapacity:10];
[scoreLabels addObject:scoreLabel1];
[scoreLabels addObject:scoreLabel2];
// ...
NSUInteger _index = 0;
for (NSNumber *_number in scoresArray) {
UILabel *_label = [scoreLabels objectAtIndex:_index];
_label.text = [NSString stringWithFormat:@"%d", [_number intValue]];
_index++;
}
EDIT
Я не уверен, почему вы хотите закомментировать _index++
. Я не проверял этот код, так что, может быть, я что-то упустил где-то. Но я не вижу ничего плохого в _index++
- это довольно стандартный способ увеличить счетчик.
В качестве альтернативы созданию массива scoreLabels
вы действительно можете получить свойство tag
подпредставлений контроллера представления (в этом случае UILabel
экземпляры, к которым вы добавляете значение tag
в интерфейсе Builder).
Предполагая, что значение tag
предсказуемо - например, каждый UILabel
от scoreLabel1
до scoreLabel10
помечен tag
, равным значениям _index
, которые мы используем в for
цикл (от 0 до 9) - тогда вы можете ссылаться на UILabel
напрямую:
// no need to create the NSMutableArray* scoreLabels here
NSUInteger _index = 0;
for (NSNumber *_number in scoresArray) {
UILabel *_label = (UILabel *)[self.view viewWithTag:_index];
_label.text = [NSString stringWithFormat:@"%d", [_number intValue]];
_index++;
}
Ключом к выполнению этой работы является то, что значение tag
должно быть уникальным для UILabel
и должно быть чем-то, на что вы можете ссылаться с помощью -viewWithTag:
.
Приведенный выше код очень просто предполагает, что значения tag
совпадают со значениями _index
, но это не требуется. (Также предполагается, что UILabel
экземпляры являются подпредставлениями свойства view
контроллера представления, которое будет зависеть от того, как вы настроили свой интерфейс в Интерфейсном Разработчике.)
Некоторые люди пишут функции, которые добавляют 1000 или другое целое число, которое позволяет группировать типы подпредставлений вместе - UILabel
экземпляры получают 1000, 1001 и т. Д., А UIButton
экземпляры получают 2000, 2001 и т. Д.