これは、強引な方法の一種のアイデアです。上で述べたように、これは他の方法と比較して信じられないほど遅いです。
- (void)myUpdateFunction
{
NSMutableArray *baseDatabaseArray;
NSMutableArray *baseWebServiceArray;
for (int i = 0; i < baseWebServiceArray.count; i++) {
id value = [[baseWebServiceArray objectAtIndex:i] valueForKey:@"barcodeID"];
NSArray *array = [baseDatabaseArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"barcodeID = %@", value]];
if (array.count > 0)
{
id obj = [array objectAtIndex:0];
[baseDatabaseArray removeObject:obj];
}
[baseDatabaseArray addObject:[baseWebServiceArray objectAtIndex:i]];
}
}
私はマジカルレコードを使用していて、それが大好きです。ただし、これにはコアデータを使用する必要があります。これが私のアップデートコードがMagicalRecordでどのように見えるかです。
- (void)updateDatabase
{
Class class = NSClassFromString(self.managedObjectClassName);
if ([class MR_countOfEntities] > 0) {
for (NSArray *array in self.totalBatches) {
[class MR_updateFromArray:array];
}
} else {
for (NSArray *array in self.totalBatches) {
[class MR_importFromArray:array];
}
}
[self.totalBatches removeAllObjects];
}
Core Dataの感触について質問がある場合、またはアルゴリズムをウォークスルーする必要がある場合は、遠慮なく質問してください。