用数组的内容填充表格视图不起作用
Posted
技术标签:
【中文标题】用数组的内容填充表格视图不起作用【英文标题】:Fill a tableview with content of array NOT working 【发布时间】:2014-02-22 13:06:52 【问题描述】:基本上我想做的是用数组中的字符串填充表格视图。我制作了第二个 UIviewcontroller 和一个自定义单元格,其中显示了一个图像和两个其他标签。但是当我运行代码时,没有错误消息,但 tableview 是空白的,几乎就像它根本不识别代码一样。我已经在 .h 文件中为其声明了一个委托和数据源。
#import "ViewController4.h"
#import "Cell.h"
#import "XMLparse.h"
@interface ViewController4 ()
@end
@implementation ViewController4
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
// Custom initialization
return self;
-(NSMutableArray *)objects
if (!Datarray)
Datarray = [[NSMutableArray alloc]init];
return Datarray;
- (void)viewDidLoad
[super viewDidLoad];
Datarray = [[NSMutableArray alloc]initWithObjects:@"USD",@"EUR",@"JPY",@"BGN",@"CZK",@"DKK",@"GBP",@"HUF",@"LTL",@"PLN",@"RON",@"SEK",@"CHF",@"NOK",@"HRK",@"RUB",@"TRY",@"AUD",@"BRL",@"CAD",@"CNY",@"HKD",@"IDR",@"ILS",@"INR",@"KRW",@"MXN",@"MYR",@"NZD",@"php",@"SGD",@"THB",@"ZAR", nil];
Tableview.delegate = self;
XMLparse *datee = [[XMLparse alloc]init];
[datee loadDataFromXML];
Date.text = [NSString stringWithFormat:@"Last updated: %@",[datee tid]];
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
- (NSInteger)numberOfSectionsInTableview:(UITableView *)tableView
return 1;
- (NSInteger)tableView:(UITableView *)tableview numberOfRowsInSection:(NSInteger)section
return [Datarray count];
- (CGFloat)tableView:(UITableView *)tableview heightForRowAtIndexPath:(NSIndexPath *)indexPath
return 78;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *simpleTableIdentifier = @"Cell";
Cell *cell = (Cell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"Cell" owner:self options:nil];
cell = [nib objectAtIndex:0];
// cell.ratename.text = [tableData objectAtIndex:indexPath.row];
// cell.thumbnailImageView.image = [UIImage imageNamed:[thumbnails objectAtIndex:indexPath.row]];
cell.currencyname.text = [Datarray objectAtIndex:indexPath.row];
return cell;
@end
【问题讨论】:
你调试了吗?您是否曾经设置过表数据源?你有没有要求表重新加载? 设置数据源和委托 【参考方案1】:您必须将self
设置为 UITableView 的数据源属性。我建议您编辑以下代码。
- (void)viewDidLoad
[super viewDidLoad];
Datarray = [[NSMutableArray alloc]initWithObjects:@"USD",@"EUR",@"JPY",@"BGN",@"CZK",@"DKK",@"GBP",@"HUF",@"LTL",@"PLN",@"RON",@"SEK",@"CHF",@"NOK",@"HRK",@"RUB",@"TRY",@"AUD",@"BRL",@"CAD",@"CNY",@"HKD",@"IDR",@"ILS",@"INR",@"KRW",@"MXN",@"MYR",@"NZD",@"PHP",@"SGD",@"THB",@"ZAR", nil];
Tableview.delegate = self;
Tableview.dataSource = self; // <---- added code for setting datasource.
XMLparse *datee = [[XMLparse alloc]init];
[datee loadDataFromXML];
Date.text = [NSString stringWithFormat:@"Last updated: %@",[datee tid]];
【讨论】:
将数据源更改为自我结束并出现此错误代码:2014-02-22 14:15:44.798 Pickerview[15332:70b] *** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因: '无法在包中加载 NIB:'NSBundle /Fredrik/Library/Application Support/iPhone Simulator/7.0.3-64/Applications/188ABEBA-9EFB-4548-84F1-2B0B9A0277CF/Pickerview.app>(已加载)'名称为“细胞” @user3338161 你的项目有Cell.xlb吗? 是的,它被命名为table.xib思想 @user3338161 尝试从您的项目中删除 Cell.xib 和 Cell.h/m 然后再次将它们添加到其中。 @user3338161 如果您的项目从 ios 5 开始可用。我相信链接 (***.com/a/15591474/579236) 会对您有所帮助。以上是关于用数组的内容填充表格视图不起作用的主要内容,如果未能解决你的问题,请参考以下文章