I am attempting to build an FSM to control a timer in (iphone sdk) objective c. I felt it was a necessary step, because I was otherwise ending up with nasty spaghetti code c
I am rather new at Objective-C, but I would suggest that you look at straight ANSI C implementation for the State Machine.
Just because you're using Cocoa doesn't mean you have to use Objective-C messages here.
In ANSI C, a state machine implementation can be very straightforward and readable.
My last implementation in C of a FSM specified #define STATE_x
or enumerate types for the states and had a table of pointers to functions to execute each state.