- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *theCell=[UITableViewCell alloc];
theCell=[theCell initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
NSLog(@"%i",[table count]);
theCell.textLabel.text=[table objectAtIndex:[indexPath row]];
return theCell;
}
文件Values.plist中插入了三个值,它们在函数viewDidLoad()中填充了NSArray“table”,但我的应用程序崩溃了
" theCell.textLabel.text=[table objectAtIndex:[indexPath row]]; "
But the line "NSLog(@"%i",[table count]);" works and shows me 3
please help .
答案 0 :(得分:1)
这是标准实施:
- (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];
}
cell.textLabel.text = [table objectAtIndex:indexPath.row];
return cell;
}
作为旁注,这是ARC实施。如果您不使用ARC,只需添加autoRelease:
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]autoRelease];
还要确保您的dataSource numberOfSections设置正确:
return 1;
和numberOfRows设置为数组:
return [table count];
答案 1 :(得分:0)
请注意以下问题:
1)确保NSArray具有值,即已填充。
2)同时尝试NSLog(@"%d",[table count]);
我认为你最好选择%d
而不是%i
。
希望这会对你有所帮助。