Ios итерации на IBOutletCollection TextView

Я пытаюсь повторить и показать мой массив в моей коллекции текстового представления.

@property (strong, nonatomic) IBOutletCollection(UITextView) NSArray *myTextViewCollection;

Но в пользовательском интерфейсе доступен только последний элемент в моем массиве.

Я повторяю с:

    for (UITextView *textView in myTextViewCollection) {
        for (int i = 0; i < feeds.count; i++) {
           textView.text = [[feeds objectAtIndex:i] objectForKey:@"title"];
           textView.editable = false;
        }
     }

feeds NSMutableArray, содержащий список объектов NSMutableDictionnary.

Идея?

3 ответа

Решение

Должно быть так:

for (int i = 0; i < myTextViewCollection.count; i++) {
    UITextView * textView = myTextViewCollection[i];
    textView.text = [[feeds objectAtIndex:i] objectForKey:@"title"];
    textView.editable = false;
}

Ваш код

for (UITextView *textView in myTextViewCollection) {
    for (int i = 0; i < feeds.count; i++) {
       textView.text = [[feeds objectAtIndex:i] objectForKey:@"title"];
       textView.editable = false;
    }
}

эквивалентно

for (UITextView *textView in myTextViewCollection) {
   textView.text = [[feeds objectAtIndex:feeds.count - 1] objectForKey:@"title"];
   textView.editable = false;
}

это причина, по которой отображается только последний элемент массива.

Вы должны изменить код на что-то вроде

int i = 0;
for (UITextView *textView in myTextViewCollection) {
    textView.text = feeds[i++][@"title"];
    textView.editable = false;
}

Попробуй это:

int i = 0;
for (UITextView *textView in myTextViewCollection) {
     textView.text = [[feeds objectAtIndex:i++] objectForKey:@"title"];
     textView.editable = false;
 }
Другие вопросы по тегам