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)
相反,它将工作(如果至少有一个选定的行 - 如果没有,你必须检查数组是否为空,否则它将再次崩溃......)
顺便说一下,编译器甚至会警告你这个问题是什么...... 在尝试编程之前,请尝试发展一些常识,因为如果没有,你会拍摄自己和其他人.