2013-04-06 34 views
-1

我試圖創建這個應用程序,當你按一個tablecell時顯示ViewController,而變量get的設置在另一個視圖控制器中。儘管當我按下uitablecell時,出現了一些錯誤。Objective C - [__ NSCFString _isAncestorOfFirstResponder]錯誤

錯誤:

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; 
*/ 

我在那裏做錯了。

+0

'飛機'是什麼樣的屬性?你在使用ARC嗎? – omz 2013-04-06 20:54:33

+0

飛機是一個「int」,是的,我使用ARC – 2013-04-06 21:19:29

回答

0

您是否使用ARC?這類問題通常表明某處存在內存錯誤。基本上,某處的某些代碼試圖訪問已經發布的對象。這使得所有事情都變成了kaboom。

如果你不使用ARC,你應該打開它。

之後,你應該做的下一件事是運行靜態分析器。修復出現的任何問題。

如果這樣不能解決問題,請在Xcode中添加一個斷點,以便在引發Objective-C異常時停止。它應該告訴你究竟發生了什麼問題。

如果這沒有幫助,請在「樂器」和「殭屍」工具下運行您的代碼。這會向您顯示剛好您試圖訪問已釋放的內存的位置。

+0

我發現performSegue是問題,當我評論它的應用程序的作品,但是當它在那裏它劑量.... – 2013-04-06 22:06:10

+0

@JackyBoy:這確實看起來像ARC幫助避開的那種內存管理錯誤,所以這是一個有效的建議。 – Chuck 2013-04-06 22:35:16