JSON 使用 Tableview 填充数组
Posted
技术标签:
【中文标题】JSON 使用 Tableview 填充数组【英文标题】:JSON using Tableview to populate the array 【发布时间】:2011-12-22 06:13:56 【问题描述】:我正在使用 tableview 从 json 文件填充数组...在我的视图控制器中,我有 tableview。当我运行项目时,我的表视图编码没有执行。我不知道你吗?任何人都请帮助我。这是我的视图控制器文件
#import "JSONparserViewController.h"
@implementation JSONparserViewController
@synthesize arraydata;
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
#pragma mark - View lifecycle
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
NSLog(@"No Of Elements in Array Data: %d",[arraydata count]);
return [arraydata count];
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
return 80;
// Customize the appearance of table view cells.
- (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];
// Configure the cell...
NSLog(@"%@",arraydata);
NSDictionary *aTweet = [arraydata objectAtIndex:[indexPath row]];
cell.textLabel.text = [aTweet objectForKey:@"name"];
// NSDictionary *newArray=[aTweet objectForKey:@"properties"];
//
// NSDictionary *newArray1=[newArray objectForKey:@"propertyMeta"];
// cell.detailTextLabel.text = [newArray1 objectForKey:@"name"];
// cell.detailTextLabel.text = [newArray objectForKey:@"value"];
cell.textLabel.adjustsFontSizeToFitWidth = YES;
cell.textLabel.font = [UIFont systemFontOfSize:12];
cell.textLabel.minimumFontSize = 10;
cell.textLabel.numberOfLines = 4;
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
//cell.detailTextLabel.text = [newArray1 objectForKey:@"type"];
// NSURL *url = [NSURL URLWithString:[aTweet objectForKey:@"profile_image_url"]];
// NSData *data = [NSData dataWithContentsOfURL:url];
// cell.imageView.image = [UIImage imageWithData:data];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
NSLog(@"HIIIIIIIIII");
return cell;
【问题讨论】:
在上面的编码中有一个 NSLog 也没有被执行.. 我想你在找JSON Parsing in xCode。 你一定忘记为数据源设置委托了。 【参考方案1】:您的问题是您在 arraydata 对象中没有任何数据。它的计数为零。所以虽然你已经设置了所有的委托和数据源,你的表委托方法不会被调用,因为当它调用 noofrowinSection 时,它返回零。
请确认您的 arrayObject 中有数据。
【讨论】:
实际上在我的数组中,我从 AppDelegate 设置数据。在我设置加载到模拟器中的数组值 UITableView 之前。所以该数组值返回零,我没有得到我的 tableview 数据。无论如何谢谢好友...我发现就在之前......你是对的!【参考方案2】:您是否已初始化您的 arraydata 对象...?而且在我看来,您还没有为您的表格视图设置委托和数据源,因为您的 nslog 委托方法没有被调用。
【讨论】:
我已经初始化了 arraydata 并同时设置了委托和数据源。我还没有清除这个问题......我也是错误之一,即“应用程序应该有一个根视图控制器应用程序启动结束”【参考方案3】:这样做是为了在你的头文件中设置 tableView 的委托和数据源。
@interface JSONparserViewController: UIViewController<UITableViewDelegate,UITableViewDataSource>
还要检查你的arraydata数组是否有内存。如果没有先给它内存
【讨论】:
【参考方案4】:你有 nit 分配你的数组。首先,您必须在分配数组值的任何地方分配数组。 NSLog 你的数组在视图中会出现如果打印然后它必须被执行
【讨论】:
【参考方案5】:请确认您的数组中有数据。解析完成后,在connectiondidfinishloading
方法中重新加载表。表格将自动重新加载。
【讨论】:
以上是关于JSON 使用 Tableview 填充数组的主要内容,如果未能解决你的问题,请参考以下文章
填充 TableView 中的 JSON 数组和 CoreData
我如何解析 JSON,将其排序为数组。提取数据并填充到表格视图中?
在 Swift 中使用远程 JSON 数据填充 tableView