ios - 从共享属性的 NSArray 中查找 NSManagedObjects

标签 ios objective-c compare nsmanagedobject

我在 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 将等于选定的 NSManagedObjects 属性
  • value 将是 NSManagedObjectNSArray,共享该属性的值

关于ios - 从共享属性的 NSArray 中查找 NSManagedObjects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19281429/

相关文章:

ios - 类 "ViewController"的重复接口(interface)定义

MYSQL日期比较查询

ios - 如何制作类似于Apple News App的 Collection View ?

ios - iOS 14 上的 SwiftUI 问题,Scrollview HStack 内容被切断

iphone - 从后台获取位置时 Location.Horizo​​ntalAccuracy 太差

ios - 在ios中对textField设置多重验证

c++ - 如何在 C++ 和归并排序中比较字符串

arrays - Bash中两个数组的比较/差异

ios - 将日期字符串转换为 NSDate?

ios - 如何使用 swift 比较核心数据中同一实体的两个属性值