0

选择行时出现此崩溃:'-[__NSCFArray objectAtIndex:]: index (1) beyond bounds (1)',

我将数据移出 viewWillAppear 是因为我们认为它会导致崩溃。我现在将它加载到 ViewDidLoad 上。

但是,如果 [self.tableview reloadData]; 是,我得到这个崩溃。

想法?

  -(void) loadData3;{

    MyAppDelegate *AppDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
self.tableDataSource3 = [AppDelegate.data3 objectForKey:@"Rows"];
NSLog(@"AppDelegate.data3 : %@",AppDelegate.data3 );
NSLog(@"self.tableDataSource3 : %@",self.tableDataSource3 );

}

- (void)viewDidLoad {
    [super viewDidLoad]; 
    [self loadData3];
    if(CurrentLevel3 == 0) {
    self.navigationItem.title = @"Families I Follow";
}
else 
    self.navigationItem.title = CurrentTitle3;  
}
}


-(void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear: animated];
            [self.tableview reloadData];
}
4

3 回答 3

1

很可能,您正在更改在显示 UITableView 时加载 UITableView 的数组,因此当您单击行时,该行不再存在于数组中。因此,Array 上的越界错误。

于 2010-10-15T21:11:09.880 回答
1
 - (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [self.tableView reloadData];
}

移动reloadDataviewDidAppear解决这个问题。

于 2012-01-29T00:25:06.100 回答
0

由于它是在选择一行时发生的,因此错误很可能在您的tableView:didSelectRowAtIndexPath:ortableView:willSelectRowAtIndexPath:方法中。viewWillAppear:您发布的代码片段似乎没有本质上的错误。

于 2010-10-15T21:09:06.890 回答