NSInvalidArgumentException /无法识别的选择器发送到实例

时间:2014-01-22 19:32:00

标签: ios objective-c

按下tableView单元后,我的应用程序因某种原因崩溃了。它不会在第一次崩溃,但在几次导航通过桌面后崩溃。

这是我的控制台:

enter image description here

在做了一些调试之后,如果我删除了这行代码,它就不会崩溃。

[[NSTimeZone localTimeZone] secondsFromGMT] / 30

这是我对DetailViewController的viewDidLoad:

titleLabel.text = [newsArticle objectForKey:@"Series"];
timeLabel.text = [newsArticle objectForKey:@"Duration"];
guestsLabel.text = [newsArticle objectForKey:@"Guests"];
descTextView.text = [newsArticle objectForKey:@"Content"];

“newsArticle”是:NSDictionary变量。

任何想法为什么会发生这种情况?任何建议将不胜感激:)

由于

2 个答案:

答案 0 :(得分:2)

正如错误消息所述,您试图基本上使用setText:而不是字符串来调用NSNull;即[someTextView setText:[NSNull null]];

第7帧来自您的应用,称为 JSON 。因此,假设您正在加载JSON文档。

您的JSON文档具有NULL值,其中您的代码期望有一个字符串。去查看JSON并找出文档包含意外构造的位置。

虽然修复JSON文档是解决方案的一部分,但我还建议加强代码以防止此类失败。

答案 1 :(得分:0)

发现问题:

有些项目并非在所有选项上都可用,因此我使用此代码来防止崩溃并让用户知道没有可用的数据:

if (![dictionary objectForKey:@"Guests"] isKindOfClass:[NSNull class]]) {
    gueststxt.text = [newsArticle objectForKey:@"Guests"];
} else {
    gueststxt.text = @"No Data";
}

刚发布此内容以防有人遇到此问题。