那么在我的 .m 文件中,我正在执行以下操作:
我正在通过网络获取数据并通过解析 json 数组将它们存储在 NSMutable 数组中。这些数据是图像 url(图像在我的服务器上),然后我想将它们设置在我的自定义单元格上。每个单元格有 2 个图像视图。
我正在正确解析数据。我确实正确存储它们。我可以看到它们的值打印出来,如果我在浏览器中打开它们,它们是正确的值。
如果在我的单元格中放置来自我的资源的静态图像,我可以看到它们。
但是,如果我尝试从 url 设置它们,我什么也看不到。
这是我的代码:
对于获取数据:
- (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;
}
如果我删除了重新加载数据,那么我会看到它们的值而不是正确的行数,所以这是必要的。
那么任何人都可以找出这里有什么问题吗?