故事板NSIndexPath

Den*_*nis -1 storyboard tableview nsindexpath ios segue

我尝试使用故事板与表视图segue到控制器视图,应该显示我的图片.问题是,当我按下任何"单元格"时,应用程序会崩溃.

这是问题代码:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    if([[segue identifier] isEqualToString:@"ShowPhoto"])
    {
        DetailsViewController *dvc = [segue 
        destinationViewController];
        NSIndexPath *path = [[self tableView] indexPathsForSelectedRows];
        Photo *pic = [photosArray objectAtIndex:[path row]];

        [dvc setCureentPic: pic];
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是NSIndexPath的行...我认为原因是我尝试将数组插入NSIndex.xcode警告:使用类型为"NSArray"的表达式初始化"NSIndexPath*__ strong"的指针类型不兼容.

crush消息:无法识别的选择器发送到实例[__NSArrayI行].我该如何解决这个问题?

小智 6

阅读您调用的方法的文档(此处),而不是假设他们做了什么...

[[self tableView] indexPathsForSelectedRows]
Run Code Online (Sandbox Code Playgroud)

返回一个NSArray不是一个NSIndexPath(顺便说一句,你甚至可以在不读取文档的情况下知道这一点- 在Cocoa命名约定中,如果某些东西是复数,那么它接受或返回一个NSArray),所以向它发送NSIndexPath将崩溃的消息.写

NSIndexPath *path = [[[self tableView] indexPathsForSelectedRows] objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

相反,它将工作(如果至少有一个选定的行 - 如果没有,你必须检查数组是否为空,否则它将再次崩溃......)

顺便说一下,编译器甚至会警告你这个问题是什么...... 在尝试编程之前,请尝试发展一些常识,因为如果没有,你会拍摄自己和其他人.