:无法识别的选择器发送到实例0x3953a20

我收到这个控制台消息的崩溃:

因未捕获的exception’NSInvalidArgumentException’而终止应用程序,原因:’*** – [NSCFArray row]:无法识别的选择器发送到实例0x3953a20′

当我滚动一个从字典数组中获取数据的表时会发生这种情况。

查看崩溃日志的堆栈跟踪,以查看此调用的确切位置。

如果您发送的变量-row实际上并未输入为NSArray,则可能是您未能遵循该变量的内存管理规则。 这些相同的症状通常是由此引起的。 响应-row的东西可能一度存在,因为你没有得到它而被解除分配,然后NSArray后来被分配到那个位置。

运行“构建和分析”,重新检查内存管理指南,直到您在睡眠中了解它们为止。

看起来您正在向NSArray发送row消息。 NSArray类中没有定义行方法。 如果您正在使用表格,我猜您要将“row”发送到indexPath参数以获取位置,然后获取数据arrays中该位置的数据:

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // first row will be like 0 NSUInteger row = [indexPath row]; // get the same row position in your data array id data = [YOUR_DATA_ARRAY objectAtIndex:row]; } 

这将为您提供行的数字位置。 一个警告:“行”不是基本NSIndexPath类的一部分。 它被添加为UIKit中的一个类别 。