/ / Come utilizzare NSPredicate con array multidimensionale (dove il predicateFormat esiste con valueForKeyPath) - ios, objective-c, xcode, nsarray, nspredicate

Come utilizzare NSPredicate con array multidimensionale (dove il predicateFormat esiste con valueForKeyPath) - ios, objective-c, xcode, nsarray, nspredicate

Ho una matrice in cui l'"id" su cui voglio filtrare la matrice esiste a valueForKeyPath "objectId" di ciascuno dei suoi dizionari. Come confrontare i predicati in ValueForKeyPath.

Attualmente .. questo predicato

NSPredicate * objIdPredicate = [NSPredicate predicateWithFormat:@"objectId = %@",obj];
NSArray * oneOrder = [array filteredArrayUsingPredicate:objIdPredicate];

sta considerando la chiave e i valori degli elementi dell'array, non quelli alla loro ValueForKeyPath=@"objectId"

risposte:

2 per risposta № 1

Usa "self" nel codice per ottenere il valore dell'elemento dell'arrayForKeyPath

NSPredicate * objIdPredicate = [NSPredicate predicateWithFormat: @ "(self.objectId =% @)", obj];

`