son metodo iguales diferente con comparar caracteres cadenas arreglo objective-c nsstring nsarray nspredicate

objective-c - metodo - comparar un string con un arreglo java



Usando NSPredicate para determinar si una cadena es igual a otra cadena (2)

Pruebe [NSPredicate predicateWithFormat:@"title ==[c] ''on call''"];

(El [c] hace que la comparación de igualdad no distinga entre mayúsculas y minúsculas).

Tengo un NSArray de CalEvents devuelto con el [CalCalendarStore eventPredicateWithStartDate] . De los eventos devueltos, estoy tratando de mantener solo aquellos en los que el título del evento == @"on call" (no distingue entre mayúsculas y minúsculas).

Puedo mantener en la matriz esos eventos cuyo título incluye @"on call" con el siguiente código (donde ''events'' es un ''NSArray'' poblado con CalEvents ):

NSPredicate *onCallPredicate = [NSPredicate predicateWithFormat:@"(SELF.title CONTAINS[c] ''on call'')"]; [events filteredArrayUsingPredicate:onCallPredicate];

He intentado usar una cadena de formato de predicado como:

@"SELF.title == ''on call''" pero parece que no funciona.

¿Hay alguna forma más fácil de hacer esto?


Pruebe el predicado con el formato @"self.title like[c] ''on call''" . El siguiente código de ejemplo genera 2 cadenas:

NSArray* ar = [NSArray arrayWithObjects:@"on call", @"I''m on call", @"lala", @"On call", nil]; NSArray* filt = [ar filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self like[c] ''on call''"]]; NSLog([filt description]); //Output "on call", "On call"