Доступ к массиву 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, подключив их в порядке, но безуспешно...

Вот скриншот.

Спасибо!

mindboggled

1 ответ

Я не думаю, что есть способ предсказать порядок IBOutletCollection.

Я думаю, что вам нужно сделать, это отсортировать коллекцию перед ее использованием.

Вы можете установить tag свойство для каждой кнопки и сортировать их по этому номеру.

Проверьте этот ответ для более подробной информации.

Другие вопросы по тегам