Доступ к массиву xcode с IBOutletCollections. Ум-поражали.
У меня есть 2 массива. Одним из них является коллекция кнопок. Другой должен быть массивом словарей. Я регистрирую длину / размер / количество объектов в массивах в консоли, используя [arrayListName count]:
2012-07-19 19:56:59.001 ABC[3224:707] lastest_badge_outlet_collection count: 4
2012-07-19 19:56:59.007 ABC[3224:707] badges_array count: 1
Хорошо, поэтому при запуске этого цикла я хочу заполнить изображения значением ключа 'name' из каждого из существующих в массиве словарей (то есть badges_array). На данный момент у меня есть словарь, хранящийся в этом массиве (что нормально). Однако, когда я запускаю этот цикл, он всегда заполняет третье изображение
for(int i = 0; i < [lastest_badge_outlet_collection count]; i++){
UIButton *button = [lastest_badge_outlet_collection objectAtIndex:i];
if(i < [badges_array count]){
NSDictionary *badge_d = [badges_array objectAtIndex:i];
NSString *badge_d_image_string = [badge_d objectForKey:@"image"];
UIImage *badge_d_image = [UIImage imageNamed: badge_d_image_string];
[[button imageView] setImage:badge_d_image];
[[button imageView] setContentMode: UIViewContentModeScaleAspectFit];
[button setAlpha:1.0f];
} else {
[button setAlpha:0.5f];
}
}
Теоретически это должно быть заполнение первого изображения. Почему он это делает? Как он решает, в каком порядке товары находятся в торговой точке, например...
Ум ошеломлен.
Я попытался перенести их в коллекцию 1 на 1, подключив их в порядке, но безуспешно...
Вот скриншот.
Спасибо!
1 ответ
Я не думаю, что есть способ предсказать порядок IBOutletCollection.
Я думаю, что вам нужно сделать, это отсортировать коллекцию перед ее использованием.
Вы можете установить tag
свойство для каждой кнопки и сортировать их по этому номеру.
Проверьте этот ответ для более подробной информации.