我想知道isEqualToArray
实际上是什么...
我有一个大小为 160 的数组,每个数组包含一个包含 11 个条目的字典,但我可以简单地根据第一列(包含更改行的日期)进行比较。
现在我可以用一个简单的 for 循环来做到这一点:
BOOL different = FALSE;
for (int index = 0 ; index < [newInfo count] ; ++index)
if (![[[oldInfo objectAtIndex:index] objectForKey:@"Update"] isEqual:[[newInfo objectAtIndex:index] objectForKey:@"Update"]]) {
different = TRUE;
break;
}
if (different) {
}
else
NSLog(@"Contact information hasn't been updated yet");
或者我可以使用内置的 isEqualToArray 方法:
if ([oldInfo isEqualToArray:newInfo])
NSLog(@"Contact information hasn't been updated yet");
else {
NSLog(@"Contact information has been updated, saving new contact information");
[newInfo writeToFile:path atomically:YES];
}
现在,如果假设isEqualToArray
只isEqualTo
为每个单元格调用,for-loop 方法运行时间的 1/11 isEqualToArray
(只需要比较一列而不是 11)。
也许我太热衷于优化......(我参加过许多运行时间有限的比赛,我感受到了后遗症)。