应用程序在保存核心数据时挂起

时间:2016-01-26 07:34:15

标签: swift core-data

我正在使用swift核心数据在应用程序中保存用户的信息,但是当它保存当前用户数据(名称,生物,3-4张照片)时,它会挂起2-3秒,直到它保存数据。什么是避免这种应用程序挂起的最佳方法?这是我正在使用的代码

I use Savon gem to connect to SOAP Webservice

当用户有10-15个朋友时,需要暂停一分钟才能保存/更新用户的所有信息/数据。

2 个答案:

答案 0 :(得分:0)

以下是我的表现。现在很明显,您不希望UI挂起,因此您将要使用具有专用队列并发类型的托管对象上下文。关于here的更多信息。具体来说,请查看最后详细介绍如何创建导出功能的部分。

现在,由于您在这种情况下将数据保存到持久性存储中,您可能不希望用户在保存以前的更改时转换更改内容,在这种情况下,您可能需要显示临时屏幕保存的进度。

答案 1 :(得分:0)

您(和您的应用)必须努力将所有照片数据保存到User实体的一个属性中。相反,重构您的数据模型:

  1. 为照片创建单独的Photo实体。
  2. 不要将照片图像数据存储在CoreData中 - 只需存储带有URL的字符串。
  3. 添加从UserPhoto的多对多关系,而不是photos属性。
  4. 顺便提一下,我会避免使用objectId作为属性名称:它非常接近CoreData' objectID会导致混淆。