iOS 中 JSON 解析中的 TableView 中未显示图像

Posted

技术标签:

【中文标题】iOS 中 JSON 解析中的 TableView 中未显示图像【英文标题】:Image not displayed in TableView in JSON parsing in iOS 【发布时间】:2015-08-20 11:55:22 【问题描述】:

我正在尝试在 UITableViewCell 中显示图像,但图像未使用原型单元格显示。

我的代码:

MTViewController.h

#import "MTViewController.h"


#import "MTTableViewCell.h"

@interface MTViewController ()


    NSMutableArray *myObject;

    // A dictionary object

    NSDictionary *dict;

    // Define keys

    NSString  *Image_Id;

    NSString *Sub_Cat_Id;

    NSString *Image_Path;


@end

@implementation MTViewController

static NSString *CellIdentifier = @"CellIdentifier";


- (void)viewDidLoad 
    // Define keys

    Image_Id = @"Image_Id";

    Sub_Cat_Id = @"Sub_Cat_Id";

    Image_Path = @"Image_Path";

    // Create array to hold dictionaries

    myObject = [[NSMutableArray alloc] init];

    NSData *jsonData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.codeappsolutions.in/android/millenium_php/php/get_subcat_img.php"]];

    id jsonObjects = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];

    // values in foreach loop

    for (NSDictionary *dataDict in jsonObjects) 

        NSString *strImageId = [dataDict objectForKey:@"Image_Id"];

        NSString *strSubCatId = [dataDict objectForKey:@"Sub_Cat_Id"];

        NSString *strImagPath = [dataDict objectForKey:@"Image_Path"];

        dict = [NSDictionary dictionaryWithObjectsAndKeys:strImageId, Image_Id,strSubCatId, Sub_Cat_Id,strImagPath, Image_Path,nil];
        [myObject addObject:dict];

    

    [super viewDidLoad];

    

- (void)didReceiveMemoryWarning 
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.



#pragma mark -
#pragma mark Table View Data Source Methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
    return 1;


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
    return myObject.count;


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    MTTableViewCell *cell = (MTTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    NSDictionary *tmpDict = [myObject objectAtIndex:indexPath.row];

    NSURL *url = [NSURL URLWithString:[tmpDict objectForKey:Image_Path]];

    NSData *data = [NSData dataWithContentsOfURL:url];

    UIImage *img = [[UIImage alloc] initWithData:data];
    [cell.mainLabel setImage:img];

    return cell;


- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
    return NO;


- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath 
    return NO;


@end

【问题讨论】:

为什么你不使用SDWebImage 我是 ios 开发新手,对库一无所知 我投票关闭它,因为它不是独立的,因为指向 JSON 文件的链接不再有效(PHP/数据库错误)。 【参考方案1】:

问题是:

您的图片网址是:EC323A308FA.jpg

但图片网址应为:http://example/EC323A308FA.jpg

所以你的网址无效。

【讨论】:

以上是关于iOS 中 JSON 解析中的 TableView 中未显示图像的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发问题:已经获得了json字符串,怎么解析并显示到tableview上

在 IOS 中解析嵌套的 Json

将 JSON 解析为 TableView xcode 6.0.1,iOS8

我如何使用解码器在swift 4中解析tableview中的json数组

如何在ios中设置tableView单元格标题?

如何在iOS swift的tableview中使用json响应中的键和值?