0

我有一个正在尝试合并 Ensembles 的现有应用程序(使用 MagicalRecord)。我在我的应用程序中遇到了几个使用MR_saveToPersistentStoreWithCompletion保存的地方。我在 Ensembles MagicalRecord 示例中注意到它使用MR_saveToPersistentStoreAndWait

我知道两者之间有什么区别;问题是:对于 Ensembles,我应该始终使用 MR_saveToPersistentStore AndWait吗?如果不是,我应该在什么情况下使用 MR_saveToPersistentStore WithCompletion

4

1 回答 1

0

需要注意的主要事情是,使用完成块涉及在后台进行异步保存,一旦保存完成,Ensembles 必须从触发的通知中捕获更改。

一般来说,这不是问题,但是当终止或进入后台时,重要的是让 Ensembles 有机会完成保存它在通知中观察到的内容。因此,在这种情况下,您应该使用 save-and-wait 变体,以确保在您processPendingChanges...对 ensemble 使用该方法之前完全保存存储。如果您改为使用非阻塞方法,当您要求 Ensembles 处理未决更改时,您无法确定保存是否完成,因此存在在应用程序终止之前无法完成的风险。

在后台保存有一个更奇特的复杂性,涉及在不同设备上创建具有相同全局标识符的对象,但它只会影响少数应用程序。您可以在Ensembles 书中了解有关该案例的更多信息。

于 2015-12-17T10:42:35.210 回答