Я опрашиваю HTTP API — он возвращает по одному элементу за раз в режиме реального времени (примерно каждые 4 секунды). По мере получения каждого элемента я хотел бы заполнить новую ячейку UITableView. Полный список полученных элементов должен оставаться в свойстве класса, я предполагаю, что это NSMutableArray. Каков наилучший способ инициализировать NSMutableArray как свойство класса, обновлять его по мере поступления новой информации, а затем использовать счетчик для обновления нового UITableViewCell? Вот как я добавляю содержимое в NSMutableDictionary:
NSMutableDictionary *messageContents = [[NSMutableDictionary alloc] init];
[messageContents retain];
[messageContents setValue:messageText forKey:@"text"];
[messageContents setValue:image forKey:@"image"];
[self addMessageToDataArray:messageContents];
Вот метод, вставляющий объекты в массив:
- (void)addMessageToDataArray:(NSArray *)messageDictionary {
[self.messageDataArray addObject:messageDictionary];
NSLog(@"count = %@", [self.messageDataArray count]);
[self reloadTableData];
}
В этот момент вызов count свойства класса messageDataArray приводит к сбою приложения. Я очень привык работать с массивами в ActionScript, Obj-C явно отличается. Объясните, пожалуйста, метод создания экземпляра NSMutableArray в качестве свойства класса, заполнения его NSMutableDictionary, а затем нахождения счетчика NSMutableArray (который будет динамически обновляться в режиме реального времени), чтобы я мог использовать эту информацию для обновления UITableView (на лету).
Или... скажи мне, что я веду себя глупо, и предложи более простое решение.