我希望将所选行的数据传递给带有segue的第二个viewcontroller。填充第一个viewcontroller tableview的结果是一个数组。在segue我使用:
if ([[segue identifier] isEqualToString:@"detailSegue"]) {
//
DetailVC *dvc = (DetailVC *)[segue destinationViewController];
NSIndexPath *indexPath = [self.resultsVC indexPathForSelectedRow];
Car *selectedCar = (Car *) [self.results objectAtIndex:indexPath.row];
dvc.currentCar = selectedCar;
当我执行segue时,我收到错误:
[NSKnownKeysDictionary1 carName]: unrecognized selector sent to instance
从我在这个主题上所做的研究中,我确实包含了与该行类似的内容:
[fetchRequest setResultType:NSDictionaryResultType]
删除时帮助了其他人。我需要为我的代码保留它。 如何将所选行的数据传递给第二个viewcontroller?
更新8月7日
用于构造数组的代码来自fetchrequest。数组行当前显示一个整数和carName。
NSArray* results = [context executeFetchRequest:r error:&error];
NSSortDescriptor* sd = [NSSortDescriptor sortDescriptorWithKey:@"number" ascending:NO];
results = [results sortedArrayUsingDescriptors:@[sd]];
self.results = results;
问题是我指向segue搜索Car *而不是此数组输出?
更新12JULY
根据Aubada Taljo的建议,我删除了Car *的引用并将以下内容添加到segue:
dvc.selectedCar = [self.results objectAtIndex:indexPath.row];
并在我的detailVC中声明了NSDictionary。
答案 0 :(得分:1)
如果你确定问题在这里,那么你确定self.results包含Car *类型的对象吗?
我建议你检查变量观察器它包含Car *类型的对象,因为它似乎是从另一种类型的对象请求属性carName。