在我的应用程序中,我调用 API 进行搜索,将结果保存在 Core Data 中,然后将它们显示在表格中。存储的数据用于离线搜索。
我已将 Codable 与 NSManagedObject 一起使用,以便更轻松地转换为对象。 (不知道这里是否相关)
无论如何,当我的应用从数据库获取数据时,它显示正常,但是当它从 API 获取数据时,对象的属性为空。
我在 API 的完成处理程序中调用以从 CoreData 获取和保存记录,因此我认为这就是并发问题的来源。
如果我将 viewContext 更改为 newBackgroundContext 或私有上下文,数据就会开始重复(即使我对 id 使用了唯一约束)或应用程序崩溃。有人能告诉我解决这个问题的正确方法是什么吗?我的 LocalStorageManger 类的代码如下。进行离线搜索的逻辑是 API 调用失败在另一个类中。
R = georasterref('RasterSize',[180 360],...
'RasterInterpretation','cells','ColumnsStartFrom','south','RowsStartFrom','west',...
'LatitudeLimits',[-89.5 89.5],'LongitudeLimits',[-179.5 179.5]);
axesm('miller');
% geoshow('landareas.shp')
load coastlines
plot(coastlon,coastlat) % load coastlines
contourm(X,R,'LineWidth',3)