NSObject(NSObject)doNotRecognizeSelector

时间:2013-06-18 16:02:10

标签: iphone pdf ios6 uicollectionview uistoryboard

我在GitHub中使用Leaves示例代码在collectionviewcontroller的detailviewcontroller中按下UIButton时显示pdf文件。

不同之处在于Leaves项目正在使用Tableviewcontroller,但我正在使用带有storyboard segue的集合视图控制器。在detailviewcontroller中有一个uibutton,它在按下时显示pdf文件。但是当按下那个uibutton时它会给出错误

应用程序正在崩溃,并且在崩溃的日志中它说 NSObject无法识别选择器,当应用程序崩溃时,它会出现错误由于未捕获的异常而终止应用程序'NSInvalidArgumentException',原因:[LeavesCache setDataSource:]:无法识别的选择器已发送到实例

nsobject是LeavesCache,选择器是我按下以显示pdf文件的uibutton

这是用于显示pdf文件的uibutton的detailviewcontroller中的编码

 - (IBAction)ReadAction:(id)sender { [self performSegueWithIdentifier:@"MySegue" sender:sender];} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
 { 
 if ([[segue identifier] isEqualToString:@"MySegue"]) { 

    // Get destination view 

PDFViewController *pdfviewController = [segue destinationViewController]; 

NSInteger tagIndex = [(UIButton *)sender tag]; 

[pdfviewController setSelectedButton:tagIndex]; } }

1 个答案:

答案 0 :(得分:1)

dataSource在原始项目中可能是UITableView的委托实现在UITableViewDataSource中声明的委托方法。

您确定尝试将dataSource设置为具有该属性的类吗?在原始项目中,他们可能有一个UITableViewController或UITableView(有一个属性dataSource可以设置),你可以使用其他没有...的类。

正如“Hot Licks”试图告诉你,在他的评论中,你得到的错误仅仅是因为你试图在一个不是UITableView的类中设置一个委托并且没有获得该属性。 (你也可以在IBuilder中做到这一点)