iOS使用JSON加载外部数据--Segue崩溃,错误:[[uuu NSCFNumber length]:发送到实例的选择器无法识别

iOS使用JSON加载外部数据--Segue崩溃,错误:[[uuu NSCFNumber length]:发送到实例的选择器无法识别,ios,objective-c,json,storyboard,segue,Ios,Objective C,Json,Storyboard,Segue,我对编程一般来说是新手,尤其是iOS。另外,这是我第一次询问StackOverflow。我希望我不要一开始就错误地粘贴代码 在我的应用程序中,我需要在应用程序中加载并显示一些JSON 我成功地遵循了一个教程,并根据自己的需要对其进行了调整,因此目前我可以将一个数据列表加载到ListView中,但在细节视图中显示整个文章时遇到了一些问题 我有一个用于Post ViewController(列表)的类和一个用于my Details ViewController(详细信息)的类 到目前为止,这就是代码

我对编程一般来说是新手,尤其是iOS。另外,这是我第一次询问StackOverflow。我希望我不要一开始就错误地粘贴代码

在我的应用程序中,我需要在应用程序中加载并显示一些JSON

我成功地遵循了一个教程,并根据自己的需要对其进行了调整,因此目前我可以将一个数据列表加载到ListView中,但在细节视图中显示整个文章时遇到了一些问题

我有一个用于Post ViewController(列表)的类和一个用于my Details ViewController(详细信息)的类

到目前为止,这就是代码的问题部分 (PostsViewController):

它调用的方法位于DetaiViewController中:

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

    if ([[segue identifier] isEqualToString:@"showDetailView"]) {

        NSIndexPath *ip = [self.tableView indexPathForSelectedRow];

        [[segue destinationViewController] getPost:[postsArray objectAtIndex:ip.row]];

    }
}
- (void)getPost:(id)postObject {

    currentPost = postObject;

}
我不知道我做错了什么,到目前为止,我对Obj-C、编译器等的内部工作机制还没有深入的了解

我这样做是为了测试一份入门级的工作,我希望每天都能学到更多

此外,整个错误是:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[\uu NSCFNumber length]:发送到实例0xb000000000000083的选择器无法识别”

请让我知道,如果我需要提供更多的信息,我为我的无知提前道歉

问候

谢谢大家

这就是问题所在,我有一个DetailsView方法,可以相应地更改标签。设置如下:

- (void)setLabels {

    lblPostTitle.text = currentPost.postTitle;
    lblPostBody.text = currentPost.postBody;
    lblPostId.text = currentPost.postId;
}
调试时,我首先尝试记录currentPost.postTitle/Body/Id,结果成功了。所以我意识到在JSONplaceholder中,postID是一个数字

所以一旦我处理了这个数字,一切都很顺利

- (void)setLabels {

    lblPostTitle.text = currentPost.postTitle;
    lblPostBody.text = currentPost.postBody;

    NSString* pi = currentPost.postId;
    lblPostId.text = [NSString stringWithFormat: @"Post ID: %@", pi];
}
现在它工作了

无论如何,我感谢所有的评论,并将继续努力避免这些新手的错误


亲切的问候

名称
getPost
令人困惑。这相当于
setPost
。错误消息只是说在某个地方传递了一个
NSNumber
对象,而不是预期的
NSString
对象。设置异常断点以找出错误发生的位置。换句话说,可能在
currentPost
中的某个地方,您希望某个东西是字符串,而它实际上是一个数字(因此它在JSON中是一个数字,而不是字符串)来添加异常断点: