我会解释我的问题,我希望找到解决方案。我正在寻找如何解决这个问题的几周,但找不到如何去做,不想使用外部库或稀有类。
解释:
我有一个TableView 自动从XML 中获取信息,XML 中的所有信息都被我解析并存储在一个MutableArray 中。
该数组解析了我所有的 XML 标记,它工作正常。
要读取标签,我按如下方式执行解析器:
//要使用这个标签标题:
[[self.parseResults objectAtIndex:indexPath.row] objectForKey:@"name_category_ads"];
//要使用这个图像标签:
[[self.parseResults objectAtIndex:indexPath.row] objectForKey:@"image1_category_ads"];
问题:
TableView 文本正确加载了我的数组(标题),但我不能让它从我的数组中加载图像到 tableview:
我使用静态 URL 图像(网站上的图像)和异步加载测试了我的代码,如果它有效,但当我尝试从我的数组中执行它时它不起作用,它具有不同的图像 url。
//图片URL静态示例
NSString *imagenURL=@"http://www.principadoasturias.net/2011/pablo/03_php/archivos/iconos/jpg.jpg";
我的表的代码如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
//My custom cell
Cell_Category_Iphone *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
cell = [[Cell_Category_Iphone alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
//Image Static URL
NSString *imagenURL=@"http://www.principadoasturias.net/2011/pablo/03_php/archivos/iconos/jpg.jpg";
//Assign the title to my cell, using my array already loaded and parsed.
cell.titleCategoryCell.text=[[self.parseResults objectAtIndex:indexPath.row] objectForKey:@"name_category_ads"];
//Asynchronous loading of image
if (!cell.imageCategoryCell.image) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
NSData *data =[NSData dataWithContentsOfURL:[NSURL URLWithString:imagenURL]];
dispatch_sync(dispatch_get_main_queue(), ^{
UIImage *thumbnail = [UIImage imageWithData:data];
cell.imageCategoryCell.image=thumbnail;
[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
});
});
}
return cell;
}
解决问题,包括:
该代码正确加载了图像,因此 asicronica,但是 URL 中的单个图像,但我不能让它加载我的数组中的图像。
//我的数组图像
[[self.parseResults objectAtIndex: indexPath.row] objectForKey: @ "image1_category_ads"];
你能帮助我吗?然后把代码分享给大家。非常感谢
问候里卡多