Hi Richard, Thanks for the reply. I have modified third statement with 'description' replaces 'SELF' and removed the single quote and tested it is actually working.
Yes, basically what I want to do with NSPredicate can actually achieved using the traditionally way of while/for loop. However I was recently impressed by functional programming way of filtering array/list, I would like to try the declarative way of filtering array (I know NSPredicate way of filtering is actually just kind of declarative). Thanks for your help again. On Mon, Oct 4, 2010 at 4:30 PM, Richard Frith-Macdonald < [email protected]> wrote: > > On 3 Oct 2010, at 14:29, Koh Nyap-Hong wrote: > > > Hi List, > > > > I with to filter array using NSPredicate (seems a lot more easier than > while loop with NSEnumerator), after read through some cocoa examples > online, I run a simple test using the following codes: > > > > NSArray *pitches = [NSArray arrayWithObjects: @"Do", @"Re", @"Mi", > @"Fa", @"So", @"La", nil]; > > > > NSArray *filteredWithSELF = [pitches filteredArrayUsingPredicate: > [NSPredicate predicateWithFormat: @"SELF == 'Do'"]]; > > NSArray *filteredWithDescription = [pitches > filteredArrayUsingPredicate: [NSPredicate predicateWithFormat: @"description > == 'Do'"]]; > > NSArray *filteredWithFormat = [pitches filteredArrayUsingPredicate: > [NSPredicate predicateWithFormat: @"SELF == '%@'", @"Do"]]; > > > > Out of the three predicate statements, however, the first and last one > return me empty array. Only the second one returns an array containing 1 > element which is the @"Do" string. > > > > Did I make any mistake in the codes, or this feature is not fully > implemented yet in base-1.20? > > Both ... > > Firstly the use of SELF is not well implemented (though you could try the > version of the base library from svn trunk). > In general NSPredicate is not fully implemented because people don't seem > to use it and contribute improvements. Perhaps because the more basic > features are all that most people need? > > Secondly, your use of quotes in the third expression is incorrect ... the > text '%@' in the format string would be parsed as equivalent to @"'Do'" . > > >
_______________________________________________ Discuss-gnustep mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnustep
