Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.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
Iphone UITableView钩子方法的调用顺序是什么?_Iphone_Cocoa Touch_Ios_Uitableview - Fatal编程技术网

Iphone UITableView钩子方法的调用顺序是什么?

Iphone UITableView钩子方法的调用顺序是什么?,iphone,cocoa-touch,ios,uitableview,Iphone,Cocoa Touch,Ios,Uitableview,以下方法对UITableView的调用顺序是什么 numberOfSectionsInTableView numberOfRowsInSection cellforrowatinexpath rowAtIndexPath高度 didChangeObject(NSFetchedResultsController) 请包括我可能遗漏的任何其他相关的钩子方法。我会谨慎地考虑调用这些方法的顺序。这些方法有非常具体和完整的目的。即使这些方法现在是按特定顺序调用的,但这并不意味着它们总是按该顺序调用,因

以下方法对UITableView的调用顺序是什么

  • numberOfSectionsInTableView
  • numberOfRowsInSection
  • cellforrowatinexpath
  • rowAtIndexPath高度
  • didChangeObject
    NSFetchedResultsController

请包括我可能遗漏的任何其他相关的钩子方法。

我会谨慎地考虑调用这些方法的顺序。这些方法有非常具体和完整的目的。即使这些方法现在是按特定顺序调用的,但这并不意味着它们总是按该顺序调用,因此在代码中假设它们的调用顺序是危险的。例如,并非所有行都调用cellForRowAtIndexPath。它只对可见行调用,然后在用户滚动到其他行时调用这些行。旧的行在离开屏幕时也会被销毁,如果用户向后滚动,它会再次请求单元格


一句话,由于苹果的文档中没有指定顺序,您不能安全地假设它们总是以相同的顺序调用,在您的实现中进行这样的假设通常不是一个好主意。

我最终使用了
NSLog
语句来解决这个问题,但不幸的是,没有记录它。因为,我意识到调用这些函数的顺序并不重要

在阅读有关的文章时,我学会了在表视图中插入行之前更新数据