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;
}