iPhone SDK:TableView从Dropbox下载sqlite文件后不显示数据

iPhone SDK:TableView从Dropbox下载sqlite文件后不显示数据,iphone,sdk,dropbox,Iphone,Sdk,Dropbox,Background:我已经创建了一个iPad数据库(使用核心数据),现在我正在努力让这个数据库能够上传/下载到DropBox。我遵循了DropBox网站上列出的所有步骤,我可以成功地上传到DropBox并从DropBox下载 问题:从DropBox(称为“dataBase.sqlite”)下载文件后,我的应用程序不会更新以显示下载文件中的数据。但是,如果我通过双击HOME(主页)按钮关闭应用程序,然后重新启动应用程序,所有数据现在都会正确显示 我希望在下载完成后,数据更新/显示在我的iPad上

Background:我已经创建了一个iPad数据库(使用核心数据),现在我正在努力让这个数据库能够上传/下载到DropBox。我遵循了DropBox网站上列出的所有步骤,我可以成功地上传到DropBox并从DropBox下载

问题:从DropBox(称为“dataBase.sqlite”)下载文件后,我的应用程序不会更新以显示下载文件中的数据。但是,如果我通过双击HOME(主页)按钮关闭应用程序,然后重新启动应用程序,所有数据现在都会正确显示

我希望在下载完成后,数据更新/显示在我的iPad上,而无需关闭并重新启动应用程序。如有任何建议,将不胜感激

已尝试:
[managedObjectContext reset]

并尝试:

managedObjectContext=nil;
managedObjectModel=nil;
persistentStoreCoordinator=nil;
我正在使用以下工具: 代码4.4.1 山狮队10.8
DropBox SDK

您可能已经尝试过了,但是一旦您检测到数据库文件的新版本已经下载,并且在您将其处理到核心数据结构之后,您是否记得
[tableView reloadData]

您的问题让我感到困惑

您似乎是从WPF思维(包括数据绑定)进行推理的。重置数据源(它不是像nsmanagedobject那样的核心日期对象),而是在table.datasource中设置的对象

您似乎假设该表直接从managedObjectContext获取数据。要么这是iOs中我不知道的一个特性,要么你正在走弯路

您负责实现符合UITableviewDatasource的对象,该对象知道从何处获取数据(最有可能是您的managedObjectContext),并使UITableView可以使用该对象

从Dropbox下载后,您至少需要向UITableview发送重新加载

[table reloadData];

最有可能的情况是,您还需要让数据源对象知道它需要“重新蚀刻”数据。(可选这是一个实时连接,每次访问时都会更新)。

通过执行以下操作,最终实现了此功能:

  • 从协调器和文件管理器中删除persistentStore(之前 文件下载)
  • 下载的新文件
  • 重新创建的persistentStore
  • 获取结果

  • 谢谢您的快速回复。是的,我试过了,但是没有用。Vincent,是的,我试过[表重新加载数据]和[自取结果]。还尝试设置self.fetchedResults=nil;在运行[self-fetchedResults]之前。。。不起作用。