I\'ve got an array of UITextField objects called _fields. I want to be able to message them all at once to set them to be highlighted,
The setHighlighted: method takes a type of BOOL. This is not an object type. Therefore you can't use the makeObjectsPerformSelector:withObject: method.
It seems to work when passing @YES because you are passing a pointer to an object to the BOOL parameter. The non-zero value gets treated like a YES value. When you pass @NO you are also passing a pointer. Since it is also a non-zero value, it also gets treated like a YES value.
You may get the desired effect of NO by passing nil to the withObject: parameter. The nil value will be 0 which is the same value as NO.
But these are kludges. Use the loop approach instead.