使用 Nsurlconnection Post 方法未显示图像
Image not showing using Nsurlconnection Post method
我在 POST
方法中使用 nsurlconnection
并为 "see"、"buy"、"updated"、[= 创建了四个数组24=]。在 tableviewcell
中显示,但 "image" 未显示。 "url in png format".
中的图像
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSError* error;
json = [NSJSONSerialization JSONObjectWithData: mutableData
options:kNilOptions
error:&error];
NSLog(@"%@",json);
sellArray = [json valueForKeyPath:@"BranchByList.sell"];
buyArray = [json valueForKeyPath:@"BranchByList.buy"];
updataedArray = [json valueForKeyPath:@"BranchByList.updated"];
imageArray = [json valueForKeyPath:@"BranchByList.flag_image"];
[_datad reloadData];
}
tableview 委托方法是:
-(NSInteger)numberOfSectionsInTableView:(UITableView *) tableView{
return 1;
}
-(NSInteger)tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger)section{
return [sellArray count];
return [buyArray count];
return [updataedArray count];
return [imageArray count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
TableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"path" forIndexPath:indexPath];
cell.sellbl.text=[sellArray objectAtIndex:indexPath.row];
cell.buylbl.text=[buyArray objectAtIndex:indexPath.row];
cell.updatedlbl.text = [updataedArray objectAtIndex:indexPath.row];
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
return cell;
}
-(void)tableView: (UITableView *) tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
}
你调用的图片是这样的,
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
如果您的项目中有图像就可以了,否则您需要从 url 下载它,您得到的响应是
NSData *data = [NSData dataWithContentsOfURL:@"you url"];
UIImage *img = [UIImage imageWithData:data];
cell.imglbl.image = img;
或者你可以使用SDWebImage,伟大的第三方库来缓存图像。
希望这会有所帮助:)
在您的项目中并使用此代码
[cell.imglbl setImageWithURL:[NSURL URLWithString:[imageArray objectAtIndex:indexPath.row]]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
而不是
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
return cell;
您似乎没有将图像设置为 cell.imglbl.image,而是 url..
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
您可以使用一些第三方库,如 SDWebImage 来异步下载图片。
https://github.com/rs/SDWebImage
(或者像这样同步下载
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]];
UIImage *image = [UIImage imageWithData:data];
)
另外我建议你有一个字典来保存已经下载的图像,其中的键是单元格的索引路径。
希望对您有所帮助:)
您是直接将url分配给图像!那根本行不通。
需要先在NSUrl中添加url,然后使用NSData将url转化为数据,再赋值给图片。
要完成它,请在您的代码中添加以下代码行:
NSURL *url = [NSURL URLWithString:[imageArray objectAtIndex:indexPath.row]];
NSData *data = [NSData dataWithContentsOfURL:url];
cell.imglbl.image = [UIImage imageWithData:data];
我再发布一个示例以加深理解。我有一个 url,我需要将 url 中的图像显示到我的设备上。对于那个 m 使用下面的代码行:
NSURL *url = [NSURL URLWithString:@"http://1.bp.blogspot.com/-9yd6LPL2N6U/VatsUdMffPI/AAAAAAAAAl4/Pq1S6Q20fy0/s1600/hello_world.gif"];
NSData *data = [NSData dataWithContentsOfURL:url];
_imgView.image=[UIImage imageWithData:data];
以上 url 只是随机 url 从 google 中截取的图像。
结果:
POST
方法中使用 nsurlconnection
并为 "see"、"buy"、"updated"、[= 创建了四个数组24=]。在 tableviewcell
中显示,但 "image" 未显示。 "url in png format".
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSError* error;
json = [NSJSONSerialization JSONObjectWithData: mutableData
options:kNilOptions
error:&error];
NSLog(@"%@",json);
sellArray = [json valueForKeyPath:@"BranchByList.sell"];
buyArray = [json valueForKeyPath:@"BranchByList.buy"];
updataedArray = [json valueForKeyPath:@"BranchByList.updated"];
imageArray = [json valueForKeyPath:@"BranchByList.flag_image"];
[_datad reloadData];
}
tableview 委托方法是:
-(NSInteger)numberOfSectionsInTableView:(UITableView *) tableView{
return 1;
}
-(NSInteger)tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger)section{
return [sellArray count];
return [buyArray count];
return [updataedArray count];
return [imageArray count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
TableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"path" forIndexPath:indexPath];
cell.sellbl.text=[sellArray objectAtIndex:indexPath.row];
cell.buylbl.text=[buyArray objectAtIndex:indexPath.row];
cell.updatedlbl.text = [updataedArray objectAtIndex:indexPath.row];
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
return cell;
}
-(void)tableView: (UITableView *) tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
}
你调用的图片是这样的,
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
如果您的项目中有图像就可以了,否则您需要从 url 下载它,您得到的响应是
NSData *data = [NSData dataWithContentsOfURL:@"you url"];
UIImage *img = [UIImage imageWithData:data];
cell.imglbl.image = img;
或者你可以使用SDWebImage,伟大的第三方库来缓存图像。
希望这会有所帮助:)
在您的项目中并使用此代码
[cell.imglbl setImageWithURL:[NSURL URLWithString:[imageArray objectAtIndex:indexPath.row]]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
而不是
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
return cell;
您似乎没有将图像设置为 cell.imglbl.image,而是 url..
cell.imglbl.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
您可以使用一些第三方库,如 SDWebImage 来异步下载图片。 https://github.com/rs/SDWebImage
(或者像这样同步下载
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]];
UIImage *image = [UIImage imageWithData:data];
)
另外我建议你有一个字典来保存已经下载的图像,其中的键是单元格的索引路径。
希望对您有所帮助:)
您是直接将url分配给图像!那根本行不通。 需要先在NSUrl中添加url,然后使用NSData将url转化为数据,再赋值给图片。
要完成它,请在您的代码中添加以下代码行:
NSURL *url = [NSURL URLWithString:[imageArray objectAtIndex:indexPath.row]];
NSData *data = [NSData dataWithContentsOfURL:url];
cell.imglbl.image = [UIImage imageWithData:data];
我再发布一个示例以加深理解。我有一个 url,我需要将 url 中的图像显示到我的设备上。对于那个 m 使用下面的代码行:
NSURL *url = [NSURL URLWithString:@"http://1.bp.blogspot.com/-9yd6LPL2N6U/VatsUdMffPI/AAAAAAAAAl4/Pq1S6Q20fy0/s1600/hello_world.gif"];
NSData *data = [NSData dataWithContentsOfURL:url];
_imgView.image=[UIImage imageWithData:data];
以上 url 只是随机 url 从 google 中截取的图像。
结果: