NSPnetworkingicate: ¿Cómo NO terminar con?

Tengo una list de imágenes en el package de aplicaciones y necesito mostrar las aplicaciones apropiadas en la aplicación, la image tiene el formatting:

###_photo_#.jpg ###: toy id, from 1000 to 2000 #: photo id, from 1 

así por ejemplo

 1000_photo_1.jpg 1000_photo_2.jpg 

Solía ​​get la list de files en el package y usar un pnetworkingicado para filtrar otros files:

 @"self ENDSWITH '.jpg' AND self BEGINSWITH '%d_photo_'", toyId 

pero ahora hay imágenes de retina que terminan con @ 2x.jpg, por lo que este método debe corregirse, estoy pensando en agregar:

 NOT ENDSWITH '@2x.jpg' 

¿Pero es esto correcto? deberia decir:

 NOT (ENDSWITH '@2x.jpg') 

o:

 (NOT ENDSWITH '@2x.jpg') 

¿en lugar?

Creo que una mejor opción en iOS 4.0+ es utilizar NSPnetworkingicate pnetworkingicateWithBlock: para definir sus condiciones. De esa forma, puede usar funciones estándar de NSString como hasSuffix: para verificar sus extremos con caso negativo.

Vea un buen tutorial aquí: http://www.wannabegeek.com/?p=149

Aquí hay una forma básica de poder usarlo.

 NSInteger toyId = 10; NSPnetworkingicate *pnetworkingicate = [NSPnetworkingicate pnetworkingicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) { return [evaluatedObject hasSuffix:@".jpg"] && ![evaluatedObject hasSuffix:@"@2x.jpg"] && [evaluatedObject hasPrefix:[NSString stringWithFormat:@"%@_photo_", [NSNumber numberWithInt:toyId]]]; }]; 

A continuación, puede tomar su matriz de files

 [arrayOfFiles filterArrayUsingPnetworkingicate:pnetworkingicate]; 

Puede usar una cadena de pnetworkingicados como esta:

 @"(self ENDSWITH '.jpg') AND NOT (self ENDSWITH '@2x.jpg') AND (self BEGINSWITH '%d_photo_')" 

Puede encapsular un pnetworkingicado en otro pnetworkingicado:

 NSPnetworkingicate *positivePnetworkingicate = [NSPnetworkingicate ...]; NSPnetworkingicate *negativePnetworkingicate = [NSCompoundPnetworkingicate notPnetworkingicateWithSubpnetworkingicate: positivePnetworkingicate]; 

Esto le permite conservar la cadena de formatting legible existente. Tenga en count que con NSCompoundPnetworkingicate , también puede crear pnetworkingicados AND y OR. De estos tres (Y, O, NO), incluso puede get cosas como los pnetworkingicados XNOR y NAND (aunque la forma de hacerlo es un ejercicio que le queda al lector …)

Prueba esto:

 NOT something ENDSWITH '@2x.jpg'