FoneMonkey

All Cocoa Touch UI components inherit from UIView, and UIView provides the default handling for the most common FoneMonkey commands including Touch, Move, Scroll, Shake, and Verify. While most component classes forward commands to UIView for handling, many component classes do override or specialize the handling of these commands.

MonkeyID

UIView also provides the default implementation of monkeyID for all components, although again, many subclasses override to provide their own, and you can easily do so for your own custom components.

The default monkeyID for a component is:

its accessibilityLabel if it exists (and accessibility is enabled),
its tag if it is less than zero and there is no accessbilityLabel,
and otherwise a unique identifier generated by FoneMonkey.

FoneMoney generates a monkeyID by assigning an ordinal to each instance of each class on the screen. FoneMonkey generated monkeyID's are prefix with a #-sign.

Generated id's are dependent on the order in which a particular component type is added to a view, and so can change across application runs if you rebuild your application with a modified view after recording a script. For this reason, you should try to avoid saving scripts with generated monkeyID's. You should instead specify an accessibilityLabel, a negative tag value, or override the monkeyID method.