У меня есть ViewController, определенный следующим образом:
@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, который затем должен представить данные в ячейку, однако в этот момент sections снова равен нулю.
Может кто-нибудь указать на мою ошибку? Я должен признать, что я новичок в объективе c, и это, вероятно, проблема с указателем. Что нужно сделать, так это сохранить значение разделов после вызова reloadData.
Большое спасибо.