根据键的值从 NSDictionary 的 NSMutableArray 中删除重复项

Remove duplicates from NSMutableArray of NSDictionary depending on value of key

我有一个 NSMutableArray,比方说,10 NSMutableArrays。这些 NSMutableArrays 中的每一个都包含不同数量的 NSDictionary 个对象,我为其制作了一个模型 class。我从 API 响应中获取此数据。第一次调用 API 时,响应将是整个数据。从那时起,当进行 API 调用时,它 returns 只有修改的数据。

当我从 API 响应中获取一些新数据时,它包含已经在字典数组中但稍作修改的数据。

型号class的结构如下:

SubCategory.h

@interface SubCategory : MTLModel <MTLJSONSerializing>

@property (nonatomic, retain) NSString *subCategoryID;
@property (nonatomic, retain) NSString *subCategoryName;
@property (nonatomic, retain) NSString *status;

@end

JSON 返回的对象将如下所示:

{
    "sub_category" =             (
                            {
                id = 55ed48123;
                name = "Sub Category 1";
                status = 1;
            },
                            {
                id = 55ed47ed3;
                name = "Sub Category 2";
                status = 1;
            }
      );
}

新数据的'id'字段相同。但是它的 'name' 和 'status' 字段是不同的。我想用新数据替换 NSDictionary 个对象的 NSMutableArray 中的数据,以便它保留此数组中对象的顺序。我怎样才能做到这一点?

1:使用NSPredicate创建重复条件的条件。

2:使用filteredArrayUsingPredicate得到一个重复对象数组。

3:从重复数组中删除一个对象。

4:使用removeObjectsInArray从原数组中移除重复数组中所有对象的列表