У меня tableview
правильно загружается первый раз, но он должен перезагрузить данные при вызове метода loadJsonData
Метод reloadData
вызывается в конце метода loadJsonData
. Но tableview
не перезагружается. Источник данных обновляется перед вызовом метода reloadData
. Для делегата и источника данных tableview
также задано значение self.
Я проверил, выполняет ли он метод numberOfRowsInSection
, и обнаружил, что он не выполняет метод. Кто-нибудь может мне помочь?
Ниже приведен код:
-(void)loadJsonData:(NSString *)fileName:(int )count
{
titleArray=[[NSMutableArray alloc]init];
dateArray=[[NSMutableArray alloc]init];
descriptionArray=[[NSMutableArray alloc]init];
urlArray=[[NSMutableArray alloc]init];
thumbnailArray=[[NSMutableArray alloc]init];
NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"json"];
NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath];
SBJSON *Parser = [[SBJSON alloc] init];
NSDictionary *data = (NSDictionary *) [Parser objectWithString:fileContent error:nil];
NSArray *items=[data objectForKey:fileName];
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"date"
ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [items sortedArrayUsingDescriptors:sortDescriptors];
items=sortedArray;
for (NSDictionary *item in items)
{
NSString *temp=[item objectForKey:@"title"];
NSString* str = [temp stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[titleArray addObject:str];
temp=[item objectForKey:@"date"];
[dateArray addObject:temp];
temp=[item objectForKey:@"thumbnailURL"];
str = [temp stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[thumbnailArray addObject:str];
temp=[item objectForKey:@"description"];
str = [temp stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[descriptionArray addObject:str];
temp=[item objectForKey:@"htmlURL"];
str = [temp stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[urlArray addObject:str];
}
[Parser release];
if (count==1)
{
[tableview performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
NSLog(@"reload data test");
}
}
-(NSInteger) numberOfSectionsInTableView:(UITableView *)aTableView {
// Return the number of sections.
return 1;
}
-(NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
NSLog(@"nof rows test..");
return [thumbnailArray count];
}
EDIT
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
CustomCell *cell;
cell=(CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"cell"];
if (cell == nil) {
cell = [[[CustomCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"cell"] autorelease];
cell.contentMode=UIViewContentModeScaleAspectFit;
cell.Title.text=[titleArray objectAtIndex:indexPath.row];
cell.description.text=[descriptionArray objectAtIndex:indexPath.row];
NSURL *url = [NSURL URLWithString:[thumbnailArray objectAtIndex:indexPath.row]];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data];
cell.Image.image=img;
cell.Date.text=[dateArray objectAtIndex:indexPath.row];
NSLog(@"date is : %@",cell.Date.text);
cell.selectionStyle=UITableViewCellSelectionStyleNone;
}
return cell;
}