Ios EXC\u BAD\u仅当从UITableView中向下滚动返回时才可访问

Ios EXC\u BAD\u仅当从UITableView中向下滚动返回时才可访问,ios,xcode,uitableview,ios7,Ios,Xcode,Uitableview,Ios7,EXC错误访问(代码=1,地址=0x71474b80) 当用户从嵌套的UITableView中向下滚动返回时,会出现此错误。如果不滚动到底部,则不会发生错误 可能存在以下建议的解除分配问题: 我的代码是: -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Tr

EXC错误访问(代码=1,地址=0x71474b80)

当用户从嵌套的UITableView中向下滚动返回时,会出现此错误。如果不滚动到底部,则不会发生错误

可能存在以下建议的解除分配问题:

我的代码是:

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

    static NSString *CellIdentifier = @"TroncalesInfo";

    TroncalesViewCell *cell = [[TroncalesViewCell alloc]init];
    cell = [tabla dequeueReusableCellWithIdentifier:CellIdentifier];
    cell.IDTroncal = [nombresTroncales objectAtIndex:indexPath.row];

    [cell setCellAtributes:indexPath db:dataBase];

    return cell;
}

我不知道这是否是问题的根源,但以下代码:

TroncalesViewCell *cell = [[TroncalesViewCell alloc]init];
cell = [tabla dequeueReusableCellWithIdentifier:CellIdentifier];
应该更接近这一点:

TroncalesViewCell *cell = [tabla dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
    cell = [[TroncalesViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

我认为您现有的代码可能会返回一个
nil
单元格,这将引发异常。现在,您正在毫无意义地初始化一个单元格,然后将其丢弃并替换为另一个单元格。

我不知道这是否是问题的根源,但以下代码:

TroncalesViewCell *cell = [[TroncalesViewCell alloc]init];
cell = [tabla dequeueReusableCellWithIdentifier:CellIdentifier];
应该更接近这一点:

TroncalesViewCell *cell = [tabla dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
    cell = [[TroncalesViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

我认为您现有的代码可能会返回一个
nil
单元格,这将引发异常。现在,您正在毫无意义地初始化一个单元格,然后将其丢弃并替换为另一个单元格。

我不知道这是否是问题的根源,但以下代码:

TroncalesViewCell *cell = [[TroncalesViewCell alloc]init];
cell = [tabla dequeueReusableCellWithIdentifier:CellIdentifier];
应该更接近这一点:

TroncalesViewCell *cell = [tabla dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
    cell = [[TroncalesViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

我认为您现有的代码可能会返回一个
nil
单元格,这将引发异常。现在,您正在毫无意义地初始化一个单元格,然后将其丢弃并替换为另一个单元格。

我不知道这是否是问题的根源,但以下代码:

TroncalesViewCell *cell = [[TroncalesViewCell alloc]init];
cell = [tabla dequeueReusableCellWithIdentifier:CellIdentifier];
应该更接近这一点:

TroncalesViewCell *cell = [tabla dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
    cell = [[TroncalesViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

我认为您现有的代码可能会返回一个
nil
单元格,这将引发异常。现在你正在毫无意义地初始化一个单元格,然后扔掉它,用另一个单元格替换它。

这是我经常使用的一个小技巧。我不知道它为什么会起作用,但试试看;)

将其插入viewController的ViewWillEnglish中:

tabla.delegate=nil


这是我经常使用的一个小技巧。我不知道它为什么会起作用,但试试看;)

将其插入viewController的ViewWillEnglish中:

tabla.delegate=nil


这是我经常使用的一个小技巧。我不知道它为什么会起作用,但试试看;)

将其插入viewController的ViewWillEnglish中:

tabla.delegate=nil


这是我经常使用的一个小技巧。我不知道它为什么会起作用,但试试看;)

将其插入viewController的ViewWillEnglish中:

tabla.delegate=nil


从崩溃日志来看,TroncalesViewController的委托似乎在不应该的时候被重新分配。滚动视图时,可以检查以确保TroncalesViewController的委托仍处于活动状态

从崩溃日志中可以看出,TroncalesViewController的委托似乎在不应该的时候被重新分配了。滚动视图时,可以检查以确保TroncalesViewController的委托仍处于活动状态

从崩溃日志中可以看出,TroncalesViewController的委托似乎在不应该的时候被重新分配了。滚动视图时,可以检查以确保TroncalesViewController的委托仍处于活动状态

从崩溃日志中可以看出,TroncalesViewController的委托似乎在不应该的时候被重新分配了。滚动视图时,可以检查以确保TroncalesViewController的委托仍处于活动状态

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{static NSString*CellIdentifier=@“TroncalesInfo”;TroncalesViewCell*cell=[tabla dequeueReusableCellWithIdentifier:CellIdentifier];if(!cell){cell=[[TroncalesViewCellAlloc]initWithStyle:UITableViewCellStyleDefault重用标识符:CellIdentifier];}cell.IDTroncal=[nombresTroncales objectAtIndex:indexath.row];[cell setCellAtributes:indexath db:dataBase];返回单元格;}执行了此操作,但仍然不起作用!!!选中objective-C启用僵尸对象时:D[TroncalesViewController scrollViewDidScroll:]:发送到解除分配实例0x18462D40的消息看起来您的tableview在仍然可见时正在解除分配。您对它有很强的引用吗?-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{static NSString*CellIdentifier=@“TroncalesInfo”;TroncalesViewCell*cell=[tabla dequeueReusableCellWithIdentifier:CellIdentifier];if(!cell){cell=[[TroncalesViewCellAlloc]initWithStyle:UITableViewCellStyleDefault重用标识符:CellIdentifier];}cell.IDTroncal=[nombresTroncales objectAtIndex:indexath.row];[cell setCellAtributes:indexath db:dataBase];返回单元格;}执行了此操作,但仍然不起作用!!!选中objective-C启用僵尸对象时:D[TroncalesViewController scrollViewDidScroll:]:发送到解除分配实例0x18462D40的消息看起来您的tableview在仍然可见时正在解除分配。您对它有很强的引用吗?-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{static NSString*CellIdentifier=@“TroncalesInfo”;TroncalesViewCell*cell=[tabla dequeueReusableCellWithIdentifier:CellIdentifier];if(!cell){cell=[[TroncalesViewCellAlloc]initWithStyle:UITableViewCellStyleDefault重用标识符:CellIdentifier];}cell.IDTroncal=[nombresTroncales objectAtIndex:indexath.row];[cell setCellAtributes:indexath db:dataBase];返回单元格;}执行了此操作,但仍然不起作用!!!选中objective-C启用僵尸对象时:D[TroncalesViewController scrollViewDidScroll:]:发送到解除分配实例0x18462D40的消息看起来您的tableview在仍然可见时正在解除分配。您对它有强引用吗?-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPat