2012-12-11 35 views
0

我希望有人能幫助解決這個問題。IOS 6發送到實例的ARC無法識別的選擇器

我有一個UITableViewController,並希望將一個值傳遞給一個名爲NewsArticleViewController的UIViewController,當tablecell被選中時。我已經從tablecell創建了一個segue到視圖控制器。

當我打電話下面我prepareForSegue方法:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([[segue identifier] isEqualToString:@"ShowNewsArticle"]) 
    { 
     NSIndexPath *indexPath = [self._tableView indexPathForSelectedRow]; 
     NSDictionary *article = [_articles objectAtIndex:indexPath.row]; 
     NSString *articleID = [article valueForKey:@"id"]; 
     NSLog(@"Trying %@", articleID); 

     NewsArticleViewController *detailViewController = [segue destinationViewController]; 
     detailViewController.articleID = articleID; 
    } 
} 

的NSLog的正確顯示的NSString值在最後一行出現錯誤之前。

我得到的錯誤:

2012-12-11 23:08:41.915 My School[4689:c07] -[UIViewController setArticleID:]: unrecognized selector sent to instance 0x8088140 
2012-12-11 23:08:41.916 My School[4689:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController setArticleID:]: unrecognized selector sent to instance 0x8088140' 
*** First throw call stack: 
(0x1800012 0x11c5e7e 0x188b4bd 0x17efbbc 0x17ef94e 0x3ca1 0x554ac7 0x554b54 0x1bc899 0x1bcb3d 0xbc3e83 0x17bf376 0x17bee06 0x17a6a82 0x17a5f44 0x17a5e1b 0x1cc87e3 0x1cc8668 0x10d65c 0x1f4d 0x1e75 0x1) 
libc++abi.dylib: terminate called throwing an exception 

在目標視圖控制器,NewsArticleViewController,我在頭部聲明如下:

@property(strong,nonatomic) id articleID; 

而且我已經合成的方法財產。我使用ARC,我不知道這是否是特定的原因,但我不能繼續下去,直到我解決這個問題。謝謝。

+3

你確定destinationViewController正在返回一個NewsArticleViewController嗎? – combinatorial

+0

在調試器命令提示符(它表示lldb或gdb)中輸入以下「po [0x8088140 class]並回車。除了用錯誤字符串」無法識別的選擇器發送到「末尾的任何指針代替0x8088140實例0x8088140'。讓我知道有什麼類。我的猜測是目標視圖控制器實際上並不是一個NewsArticleViewController實例 – Bergasms

+0

它可能是一個UINavigationController而不是一個NewsArticleViewController。 –

回答

2

在您的錯誤消息中,UIViewController報告「無法識別的選擇器」錯誤。我懷疑你的故事板沒有爲這個場景指定你的自定義NewsArticleViewController。因此,它使用默認的UIViewController,這顯然不理解setArticleID

選中「自定義類」設置在界面生成器視圖控制器:

enter image description here

如果沒有指定自定義類都有,它看起來像上面的屏幕快照。只需填寫課程名稱即可。

+1

面對Palm。我可以發誓我檢查了,顯然不是,非常感謝你的幫助,你讓一個疲憊的人開心:) – Knotty

相關問題