我收到此控制台消息的崩溃:
由于未捕获的异常而终止应用 'NSInvalidArgumentException',原因:'*** - [NSCFArray row]: 无法识别的选择器发送到实例0x3953a20'
当我滚动一个从一组字典中获取数据的表时会发生这种情况。
答案 0 :(得分:3)
查看崩溃日志的堆栈跟踪,了解此调用的确切位置。
如果您发送的变量-row实际上并未输入为NSArray,则可能是您未能遵循该变量的内存管理规则。这些相同的症状通常是由此引起的。响应-row的东西可能一度存在,因为你没有得到它而被解除分配,然后NSArray后来被分配到该位置。
运行“构建和分析”,然后重新查看内存管理指南,直到您在睡眠中了解它们为止。
答案 1 :(得分:0)
您似乎正在向row
发送NSArray
条消息。 NSArray
类中没有定义行方法。如果您正在使用表格,我猜您要将“行”发送到indexPath
参数以获取位置,然后在数据数组中的该位置获取数据:
- (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类的一部分。这是added as a category in UIKit。