diff --git a/iphone/Maps/Classes/MapDownloader/MWMBaseMapDownloaderViewController.mm b/iphone/Maps/Classes/MapDownloader/MWMBaseMapDownloaderViewController.mm index 0804ea8e77..a8b1adecdf 100644 --- a/iphone/Maps/Classes/MapDownloader/MWMBaseMapDownloaderViewController.mm +++ b/iphone/Maps/Classes/MapDownloader/MWMBaseMapDownloaderViewController.mm @@ -636,13 +636,12 @@ using namespace storage; - (void)setDataSource:(MWMMapDownloaderDataSource *)dataSource { - self.tableView.dataSource = dataSource; self.forceFullReload = YES; -} -- (MWMMapDownloaderDataSource *)dataSource -{ - return static_cast(self.tableView.dataSource); + // Order matters. _dataSource must be set last since self.tableView does not retain dataSource. + // In different order outdated datasource gets reclaimed between assignments. + self.tableView.dataSource = dataSource; + _dataSource = dataSource; } #pragma mark - Helpers