Pascal Harris <mailto:45rpmli...@googlemail.com> wrote (Wednesday, March 21, 2012 7:56 AM -0000):

Now I want to scramble the state of each of the tiles.  In the game
controller, I'm using the following code:

[[self.view subviews] makeObjectsPerformSelector:@selector(scrambleState)];

I've put a breakpoint in scrambleState - and it never gets called. I'm
guessing that 'makeObjectsPerformSelector' fails to work because scrambleState
is not a method in UIView. Question is, what do I need to do in order to
ensure that this code gets called?

Others have made a lot of valid suggestions and points, but if it wasn't mentioned I have another reason this would fail:

You must ensure that *all* subview of self.view implement -scrambleState. The first object in the collection that doesn't implement this method will throw an exception and the iteration will stop.

Safer, although longer, would be:

// (warning: typed in mail)
UIView* subview;
for ( subview in self.view.subviews )
    if ([subview respondsToSelector:@selector(scrambleState)])
        [subview scrambleState];
--
James Bucanek


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to