Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.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教程中不需要重新加载数据?_Ios_Objective C_Uitableview - Fatal编程技术网

为什么在IOS教程中不需要重新加载数据?

为什么在IOS教程中不需要重新加载数据?,ios,objective-c,uitableview,Ios,Objective C,Uitableview,在学习ios教程()时,我发现这一步 重新加载表中的数据 因为表视图不保持 跟踪其数据,这是本文件中数据源的责任 在这种情况下,您的表视图控制器将在出现错误时通知表视图 要显示的新数据 [self.tableView重载数据] 不需要:即使没有此代码片段,也会将新项添加到tableview。知道为什么吗?在您的例子中,它是超类,UITableViewController,为您提供安静的帮助,并在被告知其视图(表视图)已显示时调用reloadData(我认为这是它唯一一次这样做,如果在创建视图时您

在学习ios教程()时,我发现这一步

  • 重新加载表中的数据
  • 因为表视图不保持 跟踪其数据,这是本文件中数据源的责任 在这种情况下,您的表视图控制器将在出现错误时通知表视图 要显示的新数据

    [self.tableView重载数据]


    不需要:即使没有此代码片段,也会将新项添加到tableview。知道为什么吗?

    在您的例子中,它是超类,
    UITableViewController
    ,为您提供安静的帮助,并在被告知其视图(表视图)已显示时调用
    reloadData
    (我认为这是它唯一一次这样做,如果在创建视图时您已经执行了,我不能说我已经检查了它是否调用了
    reloadData


    如果您使用
    UIViewController
    作为超类,并将自己的属性添加到表视图中,并实现表委托和数据源方法,则不会发生这种情况,您需要显式调用
    reloadData
    ,以获得视图中显示的任何内容。

    您的控制器是
    UI的子类TableViewController
    ?是的,它是UITableViewController的一个子类。假设您的用户单击表视图控制器上的一个单元格,最终会出现一个屏幕,导致创建另一个表视图项。当他们返回到原始表视图控制器时,它将无法知道其缓存的数据是否不正确在ViewDidLoad中重新加载数据您正在告诉VC它的缓存数据现在已过期。事实上,在测试后,in不会重新加载所有数据,只需将新行添加到tableview中,而不必触摸另一行。看起来,屏幕上的UITableViewControlr检查行数,然后仅为新行调用单元格构造函数。这是比重新加载所有数据更有效。