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

时间:2012-08-13 22:54:38

标签: iphone sdk dropbox

背景:我创建了一个iPad数据库(使用核心数据),现在我正在努力为这个数据库提供上传/下载到DropBox的能力。我按照DropBox网站上列出的所有步骤操作,我可以成功上传到DropBox并从DropBox下载。

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

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

尝试:[managedObjectContext reset];

并尝试:

managedObjectContext=nil;
managedObjectModel=nil;
persistentStoreCoordinator=nil;

我使用以下内容: XCode 4.4.1 山狮10.8 DropBox SDK

3 个答案:

答案 0 :(得分:1)

最后通过以下方式解决了这个问题:

  1. 从协调器和文件管理器中删除了persistentStore(之前 文件下载)
  2. 已下载新文件
  3. 重新创建的persistentStore
  4. FetchedResults
  5. THX

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你的问题困扰我。

您似乎是从WPF思维模式中推理出来的,包括数据绑定。重置数据源(不是nsmanagedobject之类的核心日期对象),但是在table.datasource

设置的对象

您似乎假设该表直接从managedObjectContext获取其数据。这是我不知道的iOs中的一个特征,或者你正在削减一个主要角落。

您负责实现一个符合UITableviewDatasource的对象,该对象知道从哪里获取数据(最有可能是您的managedObjectContext)并将其提供给UITableView。

从Dropbox下载后,最低限度你需要重新加载到你的UITableview

[table reloadData];

您很可能需要知道您的数据源对象,它需要“重新获取”数据。 (可选这是一个实时连接,可以在每次访问时更新)。