У меня есть ViewController определяется следующим образом:Objective C - UITableView после вызова reloadData мои свойства объекта являются недействительными/ноль
@interface SectionController : UITableViewController {
NSMutableArray *sections;
}
- (void) LoadSections;
Когда LoadSection вызвать его делает вызов NSURLConnection для загрузки URL, который, в свою очередь вызовов
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[connection release];
[responseData release];
NSDictionary *results = [responseString JSONValue];
NSMutableArray *jSections = [results objectForKey:@"Items"];
sections = [NSMutableArray array];
for (NSArray* jSection in jSections)
{
Section* section = [Section alloc];
section.Id = [jSection objectForKey:@"Id"];
section.Description = [jSection objectForKey:@"Description"];
section.Image = [jSection objectForKey:@"Image"];
section.Parent = [jSection objectForKey:@"Parent"];
section.ProductCount = [jSection objectForKey:@"ProductCount"];
[sections addObject:section];
[section release];
}
[jSections release];
[results release];
[delegate sectionsLoaded];
[self.view reloadData];
}
данные разбирает правильно и теперь у меня есть разделы заполнены много пунктов.
Вызов [self.view reloadData] вынуждает обратный вызов к методу делегата cellForRowAtIndexPath, который должен затем представить данные в клетку однако его в этой точке, что секции теперь NIL снова.
Может ли кто-нибудь указать мою ошибку? Я должен признать, что я новичок в объекте c, и это, вероятно, проблема с указателем. Что нужно сделать, так это сохранить значение секций после вызова reloadData.
Большое спасибо.
Извините, что я отредактировал сообщение, чтобы включить реальную функцию, и я освобождаю переменную раздела, но это хорошо. Проблема по-прежнему остается в том, что после вызова reloadData разделы равны нулю. Это похоже на сбрасывание всего viewcontroller. – Chris
Я обновил ответ, чтобы отразить новый код. Я надеюсь, что это поможет – Bitgamma
Спасибо за ответ, но это не имеет значения. – Chris