- [__ NSCFDictionary标题]:发送到实例的无法识别的选择器

时间:2015-11-25 15:34:50

标签: ios objective-c json

我创建了一个应用程序,它从我从本地主机提取的JSON数据中填充表。我可以使用搜索栏搜索这些数据,并添加了一个按钮,将行添加到另一个表中,我正在为用户喜欢的对象使用库。所以现在我已经完成了所有工作我正在尝试创建一个详细视图,当用户点击表中的一行时,他们被带到一个新的视图控制器,然后他们可以查看对象的完整详细信息作为行初始表只有每行中列出的标题和作者。

我制作了Segue并创建了视图控制器等,当我尝试在UILabel上填充一些detaiViewController时出现错误:

3 个答案:

答案 0 :(得分:0)

变化:

self.Title.text = self.paper.Title;

为:

self.Title.text = self.paper[@"Title"];

使用awakeFromNib而不是viewDidLoad

答案 1 :(得分:0)

也许论文字典存储其他NSDictionary,而不是Paper对象。当您解析JSON时,它将解析为iOS SDK类,例如[]解析为NSArray,""解析为NSString,{}解析为NSDictionary。

所以,我想你的JSON将解析为一个字典数组。它无法为您退回纸张。您必须将每个字典中的值分配给一张纸,然后将其放入NSArray of Paper。

答案 2 :(得分:0)

NSMutableArray * locations = [[NSMutableArray alloc] init];

_papers = [json objectForKey:@" Papers"];

您正在填充位置数组,以便从_papers中检索元素。实际上_papers包含NSDictionaries的列表,当你在prepareForsegue中,你只是从_papers获得一个元素,这是一个字典,这就是它给出错误的原因。您必须存储此位置数组并从中检索元素,因为您正在将循环中的json解析为纸张并将其放在希望有帮助的位置。