我在 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 个对象要进行 100 万次比较,那可能需要一些时间。
最佳答案
您可以使用 NSDictionary
。每个条目都将由以下对组成:
key
将等于选定的NSManagedObject
s 属性value
将是NSManagedObject
的NSArray
,共享该属性的值
关于ios - 从共享属性的 NSArray 中查找 NSManagedObjects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19281429/