J'essaie de renvoyer des objets à un NSArray lorsqu'ils correspondent à un ou plusieurs critères (kOption). Le code avec lequel je suis sorti fonctionne bien si j'ai kOption1 OU kOption2 ou kOption3 et ainsi de suite, mais si j'ai kOption1 et KOption2, il retournera simplement le premier.Retour aux critères croisés correspondant à NSArray
Je viens de commencer à programmer et j'essaie de comprendre comment l'obtenir sans avoir à écrire des tonnes de conditions imbriquées si/sinon. Ou est-ce la façon dont je dois aller?
Merci.
if ([[NSUserDefaults standardUserDefaults] boolForKey:kOption1]) {
return [BOTManagedObjectContext searchObjectsForEntity:@"Sede"
withPredicate:[NSPredicate predicateWithFormat:@"(idTipoSede != %d) AND (idTipoSede != %d)", kTipoSedePrivata, kTipoSedeDayOff]
sortKey:nil
sortAscending:NO];
} if ([[NSUserDefaults standardUserDefaults] boolForKey:kOption2]) {
return [BOTManagedObjectContext searchObjectsForEntity:@"Sede"
withPredicate:[NSPredicate predicateWithFormat:@"(idTipoSede = %d) OR (idTipoSede = %d) OR (idTipoSede = %d) OR (idTipoSede = %d) OR (idTipoSede = %d) OR (idTipoSede = %d)", kTipoSedeVenue, kTipoSedeArci, kTipoSedeSquat, kTipoSedeGalleria, kTipoSedeHouse, kTipoSedeFestival]
sortKey:nil
sortAscending:NO];
} if ([[NSUserDefaults standardUserDefaults] boolForKey:kOption3]) {
return [BOTManagedObjectContext searchObjectsForEntity:@"Sede"
withPredicate:[NSPredicate predicateWithFormat:@"(idTipoSede = %d) OR (idTipoSede = %d) OR (idTipoSede = %d) OR (idTipoSede = %d) OR (idTipoSede = %d) OR (idTipoSede = %d)", kTipoSedeVenue, kTipoSedeArci, kTipoSedeSquat, kTipoSedeGalleria, kTipoSedeHouse, kTipoSedePromoter]
sortKey:nil
sortAscending:NO];
} else {
return [something else...];
}
Correction du formatage «if». Il est formaté comme s'il y avait des instructions 'else if' mais il n'y en a pas. Aussi, je pense que vous voulez 'arr addObjectsFromArray: ...'. – rmaddy
ouais, sinon si c'était une faute de frappe. et oui, il fallait addObjectsFromArray. – DavideC