【发布时间】:2016-07-05 15:33:27
【问题描述】:
我是一般编程新手,尤其是 iOS。另外,这是我第一次在 StackOverflow 上提问。我希望我不会从错误地粘贴代码开始。
在我的应用程序中,我需要将一些 JSON 加载并显示到应用程序中。
我设法按照教程进行调整并适应我的需要,因此我目前可以将数据列表加载到 ListView 中,但在详细信息视图中显示整个帖子时遇到了一些问题。
我有一个用于我的 Post ViewController(列表)的类和另一个用于我的 Details ViewController(详细信息)的类。
到目前为止,这就是代码的问题部分 (PostsViewController):
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"showDetailView"]) {
NSIndexPath *ip = [self.tableView indexPathForSelectedRow];
[[segue destinationViewController] getPost:[postsArray objectAtIndex:ip.row]];
}
}
它调用的方法在DetaisViewController中:
- (void)getPost:(id)postObject {
currentPost = postObject;
}
我不知道我做错了什么,直到现在我仍然对 Obj-C、编译器等的内部工作没有那么深刻的理解。
我这样做是为了作为入门级工作的测试,我希望日复一日地学习更多。
另外,整个错误是这样的:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFNumber 长度]:无法识别的选择器发送到实例 0xb000000000000083”
如果我需要提供更多信息,请告诉我,我提前为我的菜鸟道歉。
问候!
【问题讨论】:
-
getPost这个名字令人困惑。而是setPost。错误消息只是说在某处传递了NSNumber对象,而不是预期的NSString对象。设置异常断点,找出错误发生的位置。 -
换句话说,可能在
currentPost的某个地方,您希望某物是一个字符串,它实际上是一个数字(所以它是 JSON 中的一个数字而不是一个字符串)
标签: ios objective-c json storyboard segue