Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios cellForRowAtIndexPath:返回零/应用程序崩溃_Ios_Objective C_Uitableview - Fatal编程技术网

Ios cellForRowAtIndexPath:返回零/应用程序崩溃

Ios cellForRowAtIndexPath:返回零/应用程序崩溃,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我的应用程序有一个带有动态单元格的表格视图。这些单元格是自定义UITableViewCell类的实例。填充表工作正常。在应用程序中的某个时刻,我需要确定屏幕上显示的是哪个单元格。我使用此函数确定在scrollViewDidScroll方法中查看的单元格。单元格高度很大,因此我提出了一个方程式,以确定单元格的索引,如下所示: int index = (((int)scrollView.contentOffset.y)+250)/566; NSLog(@"%@", [_tableView cell

我的应用程序有一个带有动态单元格的表格视图。这些单元格是自定义
UITableViewCell
类的实例。填充表工作正常。在应用程序中的某个时刻,我需要确定屏幕上显示的是哪个单元格。我使用此函数确定在
scrollViewDidScroll
方法中查看的单元格。单元格高度很大,因此我提出了一个方程式,以确定单元格的
索引,如下所示:

int index = (((int)scrollView.contentOffset.y)+250)/566;

NSLog(@"%@", [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:1]]);

当我运行应用程序时,它返回null!我在堆栈溢出上搜索了这样一个问题,但找不到答案。我怎样才能归还手机

作为一般参考,我认为读取scrollview的
contentOffset
值以获取索引路径是非常不安全的
UITableView
具有方便的方法
InExpathOfRowatPoint:
,可用于该方法。因此,要获取索引路径,可以使用

CGPoint point = .... // Whatever your point is
NSIndexPath *indexPath = [_tableView indexPathForRowAtPoint:point];
您还可以始终使用
\u tableView.visibleCells
获取包含当前可见单元格的数组


这两种方法都安全得多,可以为您节省麻烦和错误

您到底希望得到什么样的输出?是正在查看的单元格的索引还是其他内容?我希望在某个索引路径(因此上面的NSLog)返回单元格。为什么不使用
indexPathOfRowAtPoint
来确定特定点的索引路径,而不是读取scrollview的
contentOffset
?这似乎有点不安全。您也可以通过调用
\u tableview.visibleCells
直接获取可见单元格,只是想知道
第1节的内容。你们有多少部分?也。。。如果不针对
第0节执行相同操作,会发生什么情况?但是再说一次,@spassas建议的方法更安全。