我有一个基于视图的应用程序只做一件事:在TableView中显示一个数组,但它不起作用,我不知道为什么。这是代码。
.h
@interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>{
NSArray *array;
IBOutlet UITableView *table;
}
.m
-(void)viewDidLoad{
[super viewDidLoad];
array = [array initWithObjects:@"iPad", @"iTV", nil];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [array count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [array objectAtIndex:indexPath.row];
return cell;
}
为什么TableView没有显示文本?谢谢大家!
答案 0 :(得分:2)
array = [array initWithObjects:@"iPad", @"iTV", nil];
应该是
array = [NSArray initWithObjects:@"iPad", @"iTV", nil];
还要确保将arrayInit称为大麦提及
编辑: 文斯指出它应该是
是正确的[[NSArray alloc] initWithObjects:@"iPad", @"iTV", nil];
或
[NSArray arrayWithObjects:@"iPad",@"iTV",nil];
取决于您是要保留还是自动释放
答案 1 :(得分:1)
我假设你在ARC下运行
NSIndexPath没有“row”属性尝试
NSInteger row = [indexPath indexAtPosition:1];
cell.textLabel.text = [array objectAtIndex:row];