我正在尝试创建这个应用程序,当你按下一个tablecell时,你会看到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;
}
}
我发现viewcontroller上的ViewDidLoad出错了。
NSString *quickTemp = [NSString alloc];
switch (plane) {
case 0:
quickTemp = @"Boeing 737-800";
break;
default:
break;
}
TitleLabel.text = quickTemp;
*/
我在那里做错了。
答案 0 :(得分:0)
你在使用ARC吗?这种问题通常表明某处存在内存错误。基本上,某些代码试图访问已经发布的对象。这使得一切都变成了kaboom。
如果您不使用ARC,则应将其打开。
之后,您应该做的下一件事是运行静态分析器。修复任何出现的问题。
如果这不能解决问题,在Xcode中添加一个在抛出Objective-C异常时停止的断点。它应该告诉你这个问题究竟发生在哪里。
如果这没有用,请在“仪器”和“僵尸”工具下运行代码。这将显示完全您尝试访问已释放的内存的位置。