我的应用程序有一个带有客户信息的TableView。
如果单击一个单元格,我会加载该客户的详细信息。
我正在使用魔法记录来管理我的所有实体。
我在做什么:
1)在我的TableView的viewDidLoad上加载所有CUSTOMER实体 2)用户点击查看客户的详细信息 3)将详细信息传递给ViewController,该对象代表实体CUSTOMER(只有一个)。
一切都运作良好。
问题是,如果用户选择重新加载TableView,我会这样做:
1)转到API以获取所有客户 2)[客户截断所有]
3)在CoreData上创建所有实体 5)[[NSManagedObjectContext defaultContext] saveToPersistentStoreAndWait]
6)重新加载tableview
但是,如果用户在此过程中单击以查看客户的详细信息,则以下ViewController会在一段时间内正确显示客户信息。然后 [Customer truncateAll]发生所有信息死亡。
我该如何防止这种情况?
非常感谢!
答案 0 :(得分:1)
您可以使用NSFetchedResultController
来监听Customer
实体更改。当您的API调用完成并在应用程序中的其他位置创建正确的实体时,您将在控制器中收到有关这些更改的通知,然后您可以重新加载数据。如果您不熟悉此概念,请查看here。