Ios -[\uu NSCFDictionary Title]:发送到实例的无法识别的选择器
我已经创建了一个应用程序,它根据从本地主机提取的JSON数据填充一个表。我可以使用搜索栏搜索这些数据,并添加了一个按钮,将行添加到另一个表中,我正在使用一个用户最喜欢的对象库。现在我已经完成了所有的工作,我正在尝试创建一个详细视图,当用户单击表中的一行时,他们将被带到一个新的视图控制器,然后他们可以查看对象的全部详细信息,因为初始表中的行在每行中只列出了标题和作者 我已经完成了这个步骤并创建了视图控制器ect,当我尝试在Ios -[\uu NSCFDictionary Title]:发送到实例的无法识别的选择器,ios,objective-c,json,Ios,Objective C,Json,我已经创建了一个应用程序,它根据从本地主机提取的JSON数据填充一个表。我可以使用搜索栏搜索这些数据,并添加了一个按钮,将行添加到另一个表中,我正在使用一个用户最喜欢的对象库。现在我已经完成了所有的工作,我正在尝试创建一个详细视图,当用户单击表中的一行时,他们将被带到一个新的视图控制器,然后他们可以查看对象的全部详细信息,因为初始表中的行在每行中只列出了标题和作者 我已经完成了这个步骤并创建了视图控制器ect,当我尝试在detaiViewController上填充一些UILabels时,我得到一
detaiViewController
上填充一些UILabel
s时,我得到一个错误:更改:
self.Title.text = self.paper.Title;
致:
使用awakeFromNib而不是viewDidLoad文件字典可能存储其他文件字典,而不是文件对象。当您解析JSON时,它将解析到IOSSDK类,例如[]解析到NSArray、“”解析到NSString、{}解析到NSDictionary
因此,我猜您的JSON将解析为字典数组。它不能给你退稿。您必须将每个字典中的值分配给论文中的一个字典,并将其放入一个NSMutableArray*位置=[[NSMutableArray alloc]init] _论文=[json objectForKey:@“论文”]
您正在通过从_文件检索元素来填充位置数组。实际上,_papers拥有NSDictionary的列表,在prepareforsgue中,您只需要从_papers中获得一个元素,它是一个字典,这就是它给出错误的原因。您必须存储这个locations数组并从中检索元素,因为您正在将json解析为循环中的纸面文档,并将其放入希望有帮助的位置。My guess
[\u papers objectAtIndex:self.listTableView.indexPathForSelectedRow.row]
是一个NSDictionary
对象,而不是Paper
对象。这里有一个很好的提示:-[\u NSCFDictionary Title]:无法识别的选择器,这是您尝试向NSDictionary发送标题:消息时得到的结果:-)为什么要使用弱
属性,您了解它的作用吗?您需要显示如何解析JSON,如何填充\u论文
。确定。您应该使用位置
而不是\u纸张
来查看UITableView。换句话说,\u papers
是包含JSON的数组,locations
是解析JSON的数组。所以Paper*myPaper=[locations objectAtIndex:self.listTableView.indexPathForSelectedRow.row]
应该可以工作,但我建议在self.listTableView
的datasource/delegate方法的其他地方使用location。这显然是正确的想法。当我直接在里面输入这个时,不会说“预期的方法读取字典元素在对象类型的论文中找不到”你有没有可能给出你论文类的一个片段?这应该是一些额外的信息现在我已经编辑了这个问题
self.Title.text = self.paper[@"Title"];