我在 NSArray 中有相当多的 NSManagedObjects,需要检查它们中的任何一个是否具有相同的属性值。显而易见的方法是嵌套 for 循环,但是由于数组中有大约 1000 个对象,因此需要很长时间才能遍历所有循环。
for (NSManagedObject *object in array) {
for (NSManagedObject *secondObject in array {
if ([[object valueForKey:@"key"] isEqualTo:[secondObject valueForKey:@"key"]] &&
object != secondObject) {
NSLog(@"Sharing a property");
}
}
}
有没有更好的方法来做到这一点?如果有 1000 个对象进行 1 000 000 次比较,则可能需要一些时间。