-1

我正在尝试创建此应用程序,当您按下表格单元时,您会看到 ViewController,并且变量 get 设置在另一个视图控制器中。虽然我在按下 uitablecell 时遇到了一些错误。

错误:

2013-04-06 22:47:25.970 iFSX Guide[1069:907] Called
2013-04-06 22:47:26.009 iFSX Guide[1069:907] -[__NSCFString     _isAncestorOfFirstResponder]: unrecognized selector sent to instance 0x1d562390
2013-04-06 22:47:26.016 iFSX Guide[1069:907] *** Terminating app due to uncaught      exception 'NSInvalidArgumentException', reason: '-[__NSCFString    _isAncestorOfFirstResponder]: unrecognized selector sent to instance 0x1d562390'
 *** First throw call stack:
 (0x319b22a3 0x3964c97f 0x319b5e07 0x319b4531 0x3190bf68 0x33832beb 0x338a837f   0x338548fb 0x33a95619 0x338a79b9 0x338a5fe7 0x339c83ef 0xa22a5 0x3387c28d 0x338fef81   0x322c0277 0x319875df 0x31987291 0x31985f01 0x318f8ebd 0x318f8d49 0x354ba2eb 0x3380e301   0xa19d1 0x39a83b20)
 libc++abi.dylib: terminate called throwing an exception

编码:

  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)in  dexPath{
   NSLog(@"Called");
    Aircraft = indexPath.row;

     [self performSegueWithIdentifier:@"ToSections" sender:self];

 }

 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([segue.identifier isEqualToString:@"ToSections"]){
        AirplaneSections *sections = (AirplaneSections *)segue.destinationViewController;
        sections.plane = Aircraft;
    }
}

我发现这是视图控制器上的 ViewDidLoad 错误。

NSString *quickTemp = [NSString alloc];
switch (plane) {
    case 0:
        quickTemp = @"Boeing 737-800";
        break;

    default:
        break;
}
TitleLabel.text = quickTemp;
*/

我在那里做错了什么。

4

1 回答 1

0

你在用ARC吗?这类问题通常表明某处存在内存错误。基本上,某处的某些代码正试图访问已发布的对象。这让一切都变得热闹起来。

如果您不使用 ARC,则应将其打开。

之后,您应该做的下一件事是运行静态分析器。解决任何出现的问题。

如果这不能解决问题,请在 Xcode 中添加一个断点,该断点在引发 Objective-C 异常时停止。它应该告诉你这个问题到底发生在哪里。

如果这没有帮助,请在 Instruments 和 Zombie 工具下运行您的代码。这将准确显示您尝试访问已释放内存的位置。

于 2013-04-06T20:55:36.987 回答