iPhone 应用程序崩溃 [__NSCFString objectForKey:] 无法识别的选择器发送到实例

Posted

技术标签:

【中文标题】iPhone 应用程序崩溃 [__NSCFString objectForKey:] 无法识别的选择器发送到实例【英文标题】:iPhone app crash [__NSCFString objectForKey:] unrecognized selector sent to instance 【发布时间】:2013-04-03 12:52:18 【问题描述】:

我试图在 tempArray 中添加偶数个 data.localBookmarks 是字典数组。这是我的代码:

currentIndex = indexPath.row;
for (NSDictionary *dict in localBookmarks)
    
    if (currentIndex % 2 == 0 && currentIndex <= [localBookmarks count])
                  
           [tempArray addObject:[dict objectForKey:@"firstName"]];
     
        currentIndex++;
    
NSLog(@"tempArray %@",tempArray);

cell.textLabel.text = [tempArray objectAtIndex:indexPath.row];
return cell;

我的应用程序在 [tempArray addObject:[dict objectForKey:@"firstName"]] 上崩溃;这条线,我该如何解决?

【问题讨论】:

嗯,从错误消息中很明显...dict 实际上是一个字符串(即检查您的localBookmarks 是否只包含字典) wt 是 localBookMarks ??是 NSDictionary 吗?? 【参考方案1】:

为什么你会崩溃

你认为是 NSDictionary 的变量 dict 实际上是一个 NSString。由于字符串不响应 objectForKey: 方法,您的应用程序崩溃了。这就是错误消息告诉您的内容。

问题出在哪里

您的陈述:“data.localBookmarks 是字典数组”是错误的。其中至少有一个只是一个字符串。

检查您的localBookmarks 来自哪里。如果您正在解析的是数据,您可能需要更改它。

【讨论】:

谢谢大卫,在 localBookmarks 数组中包含字符串也不是所有的字典,我弄错了。

以上是关于iPhone 应用程序崩溃 [__NSCFString objectForKey:] 无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章

使用 Xcode 13.2 在设备中进行测试时,应用程序在 iPhone 6、iOS 12.5 上崩溃

iPhone 应用程序在请求定位服务权限时崩溃

如何诊断和解决 WCSession sendMessage(_:replyHandler:errorHandler:) 上的崩溃?

设备和模拟器上的调试工作时,临时 iPhone SIGSEGV 崩溃

iOS模拟器崩溃

更新到 Xcode 11.0 后反应本机崩溃