UITableView
是使用NSFetchedResultsController
进行管理的,我想实现Master-Detail行为,但每次点击一个单元格我都会收到-[UIViewController setActivity:]: unrecognized selector sent to instance 0x176a7660
错误...
我不知道发生了什么,因为我的代码基于Apple的Master-Detail演示应用程序。
这是prepareForSegue
:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"activitySegue"]) {
ActivityDetailsViewController *advc = segue.destinationViewController;
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
Activity *activity = (Activity *)[[self fetchedResultsController] objectAtIndexPath:indexPath];
[advc setActivity:activity];
}
}
当然, destinationViewController 中声明了@property
。我认为这个NSManagedObject
可能存在某些内容并且没有正确传递到目的地......但这只是我的猜测。
答案 0 :(得分:1)
看起来未设置详细视图控制器的故事板中视图控制器类的名称,因此创建了UIViewController
的实例而不是ActivityDetailsViewController
的实例。
将故事板中视图控制器的名称设置为ActivityDetailsViewController
。
答案 1 :(得分:0)
我认为这一行有问题
Activity *activity = (Activity *)[[self fetchedResultsController] objectAtIndexPath:indexPath];
这是返回的活动对象吗?