UITableView适用于ios6但不适用于ios 5.1(数组计数问题)

时间:2012-12-05 11:44:15

标签: xcode uitableview row

这是我填充UITableView的代码,非常简单:

档案.h

@interface ViewController: UIViewController {
    IBOutlet UITableView *table;
    NSMutableArray *array1;
    NSString *string1
}

文件.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    array1 = [[NSMutableArray alloc] initWithObjects: @"1", @"2", @"3", @"4", nil];

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return array1.count; // <------- here there is the problem with iOS 5.1, also [array1 count]
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 20;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:
                 UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"];
    }

    cell.textLabel.backgroundColor = [UIColor clearColor];
    cell.detailTextLabel.backgroundColor = [UIColor clearColor];

    cell.textLabel.text = [NSString stringWithFormat:@" %@",[array1 objectAtIndex:indexPath.row]];
    cell.textLabel.font = [UIFont systemFontOfSize:13];
    cell.textLabel.textColor = [UIColor blackColor];

    return cell;
}

好吧,在iOS 6(模拟器和真实设备)中,它可以,UITableView加载并显示array1对象的所有行;在iOS 5.1(模拟器和真实设备)它没有崩溃,但UITableView是空的,没有显示行(页眉和页脚附加),我注意到这可能是numberOfRowsInSection:array1.count方法的问题,我想在iOS 5.1它无法识别正确的行数。请问,编写与iOS 5.1和iOS6兼容的代码的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

填充array1后

[self.tableView reloadData];

因为我认为加载tableview时数据不可用。这可能在iOS 5和6之间有所不同。