On 28 Sep 2008, at 10:02, Dave DeLong wrote:
I'm building an app, and I've got a bunch of interface object definitions called "InputElements". There are a couple subclasses, such as InputElementButton and InputElementSlider. I'm building the interface via an "InputMode" object, that contains an array of InputElement objects. As I build the interface, I loop through the InputElement objects in the InputModes array, and am doing the following: for (InputElement * element in [inputMode elements]) { if ([element isKindOfClass:[InputElementButton class]]) { //build an InputViewButton } else if ([element isKindOfClass:[InputElementSlider class]]) { //build an InputViewSlider } }
As an aside... If InputElementButton and InputElementSlider had a common superclass, and InputViewButton and InputViewSlider had a common superclass, you could simplify your code along the lines of: for (InputElement * element in [inputMode elements]) { InputView *inputView = [element buildInputView]; // ... } ...where -buildInputView is declared by the InputElement superclass and overridden by the subclasses as necessary, returning a suitable InputView subclass. Of course you might have good reason to know the class at run time, but in most cases I've come across (in my limited experience) there's usually a simpler approach that avoids it. Stuart _______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]