我试图获取一个表视图来显示数组中的数据。
错误说
使用无法识别的标识符tableItems
这是tvc的实现文件:
@interface IDTVC ()
@property NSMutableArray *tableItems;
@end
@implementation IDTVC
-(void)loadInitialData {
IDModel *item1 = [[IDModel alloc] init];
item1.name = @"Hamburger";
item1.sub = @"test";
//identify image here
item1.pic =@"pic.png";
[self.tableItems addObject:item1];
IDModel *item2 = [[IDModel alloc] init];
item2.name = @"Cheeseburger";
item2.sub = @"test";
item2.pic =@"pic.png";
[self.tableItems addObject:item2];
IDModel *item3 = [[IDModel alloc] init];
item3.name = @"Hot Dog";
item3.sub = @"test";
item3.pic =@"pic.png";
[self.tableItems addObject:item3];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.tableItems = [[NSMutableArray alloc] init];
[self loadInitialData];
}
static NSString *protoCell = @"Cell";
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:protoCell forIndexPath:indexPath];
// Configure the cell...
//RED ERROR IN FOLLOWING LINE
cell.textLabel.text = [tableItems.name objectAtIndex:indexPath.row];
// cell.textLabel.text = @"head";
cell.detailTextLabel.text = @"sub";
return cell;
}
在tableItems
数组中获取名称并将其分配给labelText
的适当语法是什么?
感谢任何建议。
答案 0 :(得分:1)
应为_tableItems
或self.tableItems
。您在其他方法中使用它是正确的,但在UITableView
委托方法中却没有。此外,如果启用了ARC
,请将tableItems
属性strong
设为:
@property (nonatomic, strong) NSMutableArray *tableItems;
答案 1 :(得分:0)
创建一个子类' MyCustomCell'对于UITableViewCell并在那里添加属性。
你的.h文件中的
@interface MyCustomCell : UITableViewCell
@property (strong, nonatomic) UILabel *myTitle;
@property (strong, nonatomic) UILabel *detailTitle;
@end
你的.m文件中的
-(id)initWithCoder:(NSCoder *)aDecoder
{
if(self = [super initWithCoder:aDecoder]) {
_myTitle = [[UILabel alloc] init];
_detailTitle = [[UILabel alloc] init];
[self.contentView addSubview:_myTitle];
[self.contentView addSubview:_detailTitle];
}
return self;
}
在您的UITableViewController中添加导入自定义子类
在UITableViewController
中为您的名字和子创建NSString属性#import "MyCustomCell"
@property(强,非原子)NSString * name;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *requestCell = @"myCell";
MyCustomCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:requestCell forIndexPath:indexPath];
cell.myTitle.frame = CGRectMake(105, 0, self.view.frame.size.width - 155, 50);
cell.detailTitle.frame = CGRectMake(105, 50, self.view.frame.size.width - 110, 15);
cell.myTitle.text = _tableItems.name;
cell.detailTitle.text = _tableItems.sub;
return cell;
}
***未经测试