It works for sets, too
You probably know that NSArray supports KVC as a sort of pseudo-HOM:
NSArray *words = …;
NSArray *lengths = [words valueForKey:@”length”]; //Invokes -[NSString length] for every element, assuming that each element is a kind of NSString
What you may not know is that this works for NSSet as well. As -[NSArray valueForKey:] returns an NSArray, so does NSSet return an NSSet.