在我的.m文件中,我正在执行以下操作:
我通过网络获取数据并通过解析json数组将它们存储在NSMutable数组中。这些数据是图像网址(图像在我的服务器上),然后我想在我的自定义单元格上设置它们。每个单元格都有2个图像视图。
我正在正确解析数据。 我正确地存储它们。 我可以看到它们的值打印出来,如果我在浏览器中打开它们,它们就是正确的值。
如果在我的单元格中放置了来自我资源的静态图像,我可以看到它们。
但如果我尝试从网址设置它们,我什么都看不到。
这是我的代码:
用于获取数据:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"connectionDidFinishLoading");
NSLog(@"Succeeded! Received %d bytes of data",[self.responseData length]);
// convert to JSON
NSError *myError = nil;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&myError];
images_url= [NSMutableArray new];
for (NSDictionary *alert in json ){
NSString* image = [alert objectForKey:@"image"];
[images_url addObject:image];
}
[self.myTable reloadData];
}
其中myTable是我合成的TableView。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
int i=[images_url count]/2;
return i;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier=@"ListTableCell";
//this is the identifier of the custom cell
ListsCell *cell = (ListsCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ListsCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
/*NSString *url_left=[images_url objectAtIndex:(indexPath.row*2)];
NSLog(@"Left url is:%@",url_left);
NSString *url_right=[images_url objectAtIndex:(indexPath.row*2+1)];
NSLog(@"Right url is:%@",url_right);*/ THEY ARE PRINTED HERE
NSURL *url_left=[NSURL URLWithString:[images_url objectAtIndex:(indexPath.row*2)]];
cell.Left.image=[UIImage imageWithData:[NSData dataWithContentsOfURL:url_left]];
NSURL *url_right=[NSURL URLWithString:[images_url objectAtIndex:(indexPath.row*2+1)]];
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 81;
}
如果我删除重新加载数据,那么我会看到他们的值而不是正确的行数,所以这是必要的。
所以有人能在这里找出问题吗?