2017-06-13 7 views
0

辞書からデータを取得しています。それはうまく動作し、NSMutableArrayにデータを格納します。必要なオブジェクトを追加する前に、Arrayに同じ名前とタイプの同じオブジェクトが含まれていないことを確認します。下記を参照してください。チェックする方法配列に新しい値を追加する前に同じオブジェクト値がある場合

オブジェクトを挿入する前に、挿入する必要がない場合はタイプと名前のオブジェクトが含まれていないことを確認する必要があります。

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]; 



    } 
} 
+0

回答>> https://stackoverflow.com/questions/10387582/checking-an-array-if-it-contains-an-object-by-a-specific-property-objective-c –

+0

containsObjectを使用して確認できます。以下のリンクをクリックすると、https://stackoverflow.com/a/6299064/5184217に役立つかもしれません。 –

答えて

1

一般的な解決策は、自分自身を他の人と比較する方法を教えてください。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]; 
} 

を、あなたはNSArrayののcontainsObject:を利用することができます。似

// ... 
if(![appDelegate.dataArray containsObject:theObject] && ![error isEqualToString:@"No Record Found."]) 
// ... 
関連する問題