Revision: 16668
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 11, 2009 22:04 by phifty
Initial Code
#define objectString(anObject) [[anObject description] UTF8String] #import <Foundation/Foundation.h> @interface Util : NSObject {} + (void)explode:(id)viewObj level:(int)level; @end @implementation Util + (void)explode:(id)viewObj level:(int)level { // indent to show the current level for (int i = 0; i < level; i++) { printf("-", level); } // show the class and superclass for the current object printf("%s : ", objectString([viewObj class])); id obj = [viewObj superclass]; while (NULL != obj) { printf("%s : ", objectString([obj class])); obj = [obj superclass]; } printf("\n"); // recurse for all subviews for (UIView *sub in [viewObj subviews]) { [Util explode:sub level:(level + 1)]; } } @end
Initial URL
Initial Description
This is adapted from Erica Sadun's explode code in her book "iPhone Developer's Cookbook". It takes any UIView-based element and exposes all of the subviews and their subviews, etc. Its a good way to dig into UIKit elements as well as debug your own UIView-based code. In code, always set level to zero.
Initial Title
UIView and Subviews Exploded
Initial Tags
Initial Language
Objective C