我有一个难以解释的问题,但它让我感到困惑。我的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数据库,运行同步过程(步骤1,2和3),这将添加3条记录,当步骤4检索数据时(使用以下代码),它只返回1条记录,即使3条记录是在SQL数据库中可见。我不明白为什么相同的代码正确地检索步骤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之后才实际执行。因此,数据将不会被刷新。这是为什么?