Вы можете (и должны) вызвать reloadData:
, когда хотите принудительно перезагрузить таблицу или когда вы знаете, что она еще не была нарисована.
Часто вы будете делать это в методе viewDidLoad:
вашего контроллера представления или viewDidAppear:
(или даже viewWillAppear:
).
Вне этих методов, если вы существенно измените содержимое массива данных, используемых для подачи данных в таблицу, вы захотите вызвать reloadData:
. Например, скажем, у вас был список продуктов с уровнями запасов для каждого. На начальном этапе вы можете просто показать все в массиве, в таблице. Но, скажем, у вас есть фильтр, который показывает только продукты с нулевым запасом. Массив с продуктами будет сокращен для включения только этих продуктов, поэтому после сокращения массива вы вызовете reloadData:
для таблицы, чтобы представление было обновлено.
И, кстати, как я недавно обнаружил, когда вы вызываете reloadData:
, таблица перезагружается асинхронно (и довольно быстро). Однако методы deleteRows...
, deleteSections...
, insertRows...
и insertSections...
(особенно между вызовами beginUpdates:
и endUpdates:
) выполняются синхронно и могут, для больших таблиц, замедлять работу приложения (и зависать). пользовательский интерфейс) значительно. Ваш пробег может варьироваться, но это был мой опыт с этими методами. Я на самом деле пошел к модели, где я использую deleteSections...
, а затем reloadData:
(потому что я все равно удалял все разделы).