:无法识别的选择器发送到实例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中的一个类别 。