我有一个难以解释的问题,但它让我感到困惑。我的 iPad 应用程序中有以下内容:
1) 数据使用 CoreData 存储在我的 iPad 上
2) 数据也存储在 SQL 数据库中
这些数据存储会不时同步,以便将在 ipad(CoreData)上收集的任何新数据上传到 SQL 数据库。
同步过程如下:
步骤 1) CoreData 数据被加载到一个数组中
步骤 2) SQL 数据加载到数组中
步骤 3) 比较两个数组,如果 CoreData 数组中出现任何记录,则调用 php 文件以使用必要的数据更新 SQL 数据库。
步骤 4) SQL 数据被重新加载并显示在 TableView 中。
除了第4步之外,这一切都很好。
在第 4 步中,我运行与第 1 步相同的过程来检索 SQL 数据。新数据在 SQL 数据库中可见,但该例程仅检索一条记录。
例如:如果我清除所有记录的 SQL 数据库,运行添加 3 条记录的同步过程(步骤 1、2 和 3),当步骤 4 检索数据时(使用以下代码)它只返回 1 条记录,即使SQL 数据库中可见 3 条记录。我不明白为什么相同的代码在步骤 1 中正确检索了数据,但在步骤 4 中却没有。有什么想法吗?
NSString *strURLClassRefreshed = [NSString stringWithFormat:@"%@%@", @"http://www.i-observe.co.uk/uploads/getiobserveinfo.php?schoolname=",obsSchoolName];
NSArray *observationsArrayClassRefreshed = [[NSMutableArray alloc] initWithContentsOfURL:[NSURL URLWithString:strURLClassRefreshed]];
NSEnumerator *enumForObsClassRefreshed = [observationsArrayClassRefreshed objectEnumerator];
更新 似乎在步骤 3 中的 php 调用直到程序完成后才真正执行,即在步骤 4 之后。因此数据不会在那里被刷新。为什么是这样?