Ios 如何在添加新值之前检查数组是否具有相同的对象值

Ios 如何在添加新值之前检查数组是否具有相同的对象值,ios,objective-c,nsmutablearray,Ios,Objective C,Nsmutablearray,我正在从字典中获取数据。它工作良好,并将数据存储在NSMutableArray中。我希望在将对象添加到中之前,需要确保数组中不包含具有相同名称和类型的相同对象。请看下面 在插入对象之前,如果不需要插入,我们应该检查它是否不包含类型和名称为的对象 NSArray *resultDic = [result1 objectForKey:@"results"]; for (int i = 0; i<[resultDic count]; i++) { id item = [resultDi

我正在从字典中获取数据。它工作良好,并将数据存储在NSMutableArray中。我希望在将对象添加到中之前,需要确保数组中不包含具有相同名称和类型的相同对象。请看下面

在插入对象之前,如果不需要插入,我们应该检查它是否不包含类型和名称为的对象

NSArray *resultDic = [result1 objectForKey:@"results"];

for (int i = 0; i<[resultDic count]; i++) {
    id item = [resultDic objectAtIndex:i];

    NSDictionary *jsonDict = (NSDictionary *) item;
    GetData  *theObject =[[GetData alloc] init];

    NSString*error = [jsonDict valueForKey:@"error"];
    if(![error isEqualToString:@"No Record Found."])
    {



        [theObject setVaccineID:[jsonDict valueForKey:@"ID"]];
        [theObject setVaccineName:[jsonDict valueForKey:@"Name"]];
        [theObject setVaccinationType:[jsonDict valueForKey:@"Type"]];
        [theObject setVaccineType:[jsonDict valueForKey:@"VType"]];
        [theObject setFarmName:[jsonDict valueForKey:@"FName"]];
        [theObject setDay:[jsonDict valueForKey:@"Day"]];
        [theObject setAddedDateTime:[jsonDict valueForKey:@"DateTime"]];



        [appDelegate.dataArray addObject:theObject];



    }
}
NSArray*resultDic=[result1 objectForKey:@“results”];

对于(int i=0;i一个通用解决方案是教您的
GetData
对象如何将自身与其他对象进行比较。如果可以比较它们,则很容易确定匹配项是否在任何集合中(您可能也希望在其他上下文中进行比较)。通过实现
isEqual:
来实现此操作。这可能类似于:

// in GetData.m
- (BOOL)isEqual:(id)object {
    if ([object isKindOfClass:[GetData self]]) {
        // assuming that the object is fully characterized by it's ID
        return [self.vaccineId isEqual:((GetData *)object).vaccineId];
    }
    else {
        return NO;
    }
}

// have the hash value operate on the same characteristics as isEqual
- (NSUInteger)hash {
    return [self.vaccineId hash];
}
这样做,你就可以利用恩萨里的


答案类似于>>您可以使用containsObject进行检查。请检查下面的链接,它可能对您有用
// ...
if(![appDelegate.dataArray containsObject:theObject] && ![error isEqualToString:@"No Record Found."])
// ...