iphone ios nsarray nspredicate

iphone - Filter Array con diccionarios usando NSPredicate



nsarray (2)

Hay una matriz con cada elemento que es un NSDictionary .

NSMutableArray *mutArr = [NSMutableArray array]; for (Person *person in persons) { NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:person.name, @"name", person.email, @"email", nil]; [mutArr addObject:dict]; } self.arr = [[NSArray alloc] initWithArray:mutArr];

Cómo archivar el arr con nombre o correo electrónico contiene la cadena @"filter string" usando el método filterArrayUsingPredicate: .

¡Gracias por adelantado!


Mira esto :

var customerNameDict = ["firstName":"karthi","LastName":"alagu","MiddleName":"prabhu"]; var clientNameDict = ["firstName":"Selva","LastName":"kumar","MiddleName":"m"]; var employeeNameDict = ["firstName":"karthi","LastName":"prabhu","MiddleName":"kp"]; var attributeValue = "karthi"; var arrNames:Array = [customerNameDict,clientNameDict,employeeNameDict]; var namePredicate = NSPredicate(format: "firstName like %@",attributeValue); let filteredArray = arrNames.filter { namePredicate.evaluateWithObject($0) }; println("names = ,/(filteredArray)");


Por favor vea el siguiente ejemplo:

NSArray *array = [NSArray arrayWithObject:[NSMutableDictionary dictionaryWithObject:@"filter string" forKey:@"email"]]; // you can also do same for Name key... NSArray *filteredarray = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(email == %@)", @"filter string"]];