2016-09-23 4 views
0

У меня есть NSArray. Он имеет один или несколько NSDictionary. otherContacts имеет один словарь в каждом индексе. chatContacts имеет два словаря в каждом индексе. Как я могу найти Array имеет то же самое contact_detail.Как найти два NSArray имеет общий NSDictionary

NSArray * otherContacts = { 
     "contact_detail" =   { 
      "contact_Label" = "Test 5 "; 
      userid = 48; 
     }; 
    } 

NSArray * chatContacts ={ 
     "contact_detail" =   { 
      "contact_Label" = "Test 5 "; 
      userid = 48; 
     }; 
     "last_msg_details" =  { 
     "Key_from_me" = 1; 
     data = " B"; 
     }; 
    } 

Я пробовал, как это, используя NSPredicate. Но он не возвращает общие данные.

NSArray *filtered = [otherContacts filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) { 
     return [chatContacts containsObject:evaluatedObject]; 
    }]]; 

ответ

0

Может быть, вы можете использовать NSMutableSet для достижения этого:

Мола,

NSMutableSet* set1 = [NSMutableSet setWithArray:array1]; 
NSMutableSet* set2 = [NSMutableSet setWithArray:array2]; 

//Find intersect: Which will give common objects 
[set1 intersectSet:set2]; 

//Array with common objects 
NSArray* arrCommon = [set1 allObjects]; 

//Now check common objects count to find if it has common object 

if(arrCommon.count>0){ 

    //has common dictionary 
}