On Mon, Mar 23, 2009 at 2:53 PM, Ben Einstein <[email protected]> wrote: > I'm filtering an array of dictionaries, my usual procedure for doing this > is: > > NSPredicate *predicate = [NSPredicate predicateWithFormat:@"MyKey > CONTAINS[cd] %@", searchString]; > NSArray *filteredArray = [[self dataArray] > filteredArrayUsingPredicate:predicate]; > > So your comment about lowercase keys is only true for KVC compliance > (filtering non-plist objects),
NSPredicate *uses* KVC to fetch the values to test. So, the keys/keypaths you use therewith should be valid KVC keys. Therefore, the "Keys must use ASCII encoding, begin with a lowercase letter, and may not contain whitespace." holds here as well. > not when filtering arrays of dictionaries, > where numbers ARE valid keys. But NSPredicate doesn't seem to think so. Numbers are never valid KVC keys. > On Mar 23, 2009, at 5:48 PM, Kyle Sluder wrote: > >> On Mon, Mar 23, 2009 at 5:18 PM, Ben Einstein <[email protected]> wrote: >>> >>> So is there any way to filter with numberic keys? I guess I could convert >>> all they keys to strings? Urgh.... >> >> First, arrays don't have keys. I'm assuming you mean you need to >> filter the items based on values for keypaths off those objects. >> >> And no, numbers are not valid keys. Keys must begin with a lowercase >> letter: >> http://developer.apple.com/documentation/Cocoa/Conceptual/KeyValueCoding/Concepts/BasicPrinciples.html#//apple_ref/doc/uid/20002170-183455 >> >> --Kyle Sluder -- Clark S. Cox III [email protected] _______________________________________________ Cocoa-dev mailing list ([email protected]) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
