こんにちは、プログラミング初心者です。私の問題は、画像を解析できないことです。画像は、テキストを含むリストに解析する必要があります。
JSONKit を使用して json を解析しています。古いバージョンの xcode があり、シミュレーター 4.3 しかありません。
テキストは解析できますが、画像は解析できません。画像を解析する方法についていくつかの例を見てきましたが、正しく実行できませんでした。
解析したいjson:
{[{"n_id":"1","n_name":"Green","n_text":"this is test","Image":"dasdas.jpg"}]}
私はこのようなものを使用する必要があると思います
NSData *img=[[NSData alloc]initWithContentsOfURL:url];
UIImage *image=[UIImage imageWithData:img];
しかし、それを自分のコードに組み込む方法がわかりません。私は少し迷っています。
前もって感謝します
////Json2ViewController.h
@interface Json2ViewController : UIViewController {
NSArray * list;
NSString * content;
NSString * many;
NSString * thumbNail;
NSMutableArray *studName;
NSMutableArray *ntext;
NSMutableArray *imagesArray;
NSArray *images;
}
@property (nonatomic, retain) NSMutableArray* studName;
@property (nonatomic, retain) NSMutableArray* ntext;
@property (nonatomic, retain) NSMutableArray* imagesArray;
//Json2ViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
NSData * JSONdata =[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://myurl.com"]];
if([JSONdata length] == 0){
[JSONdata release];
return;
}
NSArray *students =[JSONdata objectFromJSONData];
studName = [[NSMutableArray alloc] init];
ntext = [[NSMutableArray alloc] init];
imagesArray = [[NSMutableArray alloc] init];
for(NSDictionary *student in students)
{
content = [student objectForKey:@"n_name"];
if(content)
[studName addObject:content];
many = [student objectForKey:@"n_text"];
if(many)
[ntext addObject:many];
images = [student objectForKey:@"Image"];
if(images)
[imagesArray addObject:images];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
cell.imageView.image = = [imagesArray objectAtIndex:indexPath.row];
cell.textLabel.text = [studName objectAtIndex:indexPath.row];
cell.detailTextLabel.text = [ntext objectAtIndex:indexPath.row];
return cell;
}