• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Getting a list of all classes, etc...
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Getting a list of all classes, etc...


  • Subject: Re: Getting a list of all classes, etc...
  • From: Ken Thomases <email@hidden>
  • Date: Thu, 27 Mar 2008 11:23:11 -0500

On Mar 26, 2008, at 11:43 PM, Graham Cox wrote:
I have a class that can contain different objects which all derive from a class R. The container can accept instances of any subclass of R.

Each subclass of R implements a CLASS method for a particular feature, returning an array. The container needs to build an array which is the union of all the arrays returned by each subclass. Thus it needs to iterate through a list of all possible subclasses of R, combining the arrays as it goes. Problem is that not all possible subclasses of R are known until runtime, so I need a way to be able to get hold of such a list, based on the fact that they all inherit from R. Note that these are not instances of R, but classes. (I can get a list of instances I have right now, but that doesn't cover the possibility of another object instance derived from R being added after I already built the array).

Hope this makes sense - any ideas?

You seem to have solved this, but there might be a better way:

Implement +initialize on class R. Reading the docs on +initialize, you'll find that it's called for subclasses of R, too, if those subclasses don't override +initialize. Even if a subclass does override +initialize, you can make it a part of the design contract that they must call [super initialize]. (Yes, that goes against a suggestion in the docs, but in this case you're doing it with eyes open for a specific purpose.)

So, now you have arranged that R's +initialize is called for R and every one of its subclasses. In that method, you can use "self" to refer to the actual (sub)class being initialized and do whatever is appropriate from there.

I hope that's useful,
Ken

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Getting a list of all classes, etc...
      • From: Chris Suter <email@hidden>
References: 
 >Getting a list of all classes, etc... (From: Graham Cox <email@hidden>)
 >Re: Getting a list of all classes, etc... (From: "Sherm Pendley" <email@hidden>)
 >Re: Getting a list of all classes, etc... (From: Graham Cox <email@hidden>)
 >Re: Getting a list of all classes, etc... (From: Graham Cox <email@hidden>)

  • Prev by Date: Re: Leopard on PPC
  • Next by Date: Re: Leopard on PPC
  • Previous by thread: Re: Getting a list of all classes, etc...
  • Next by thread: Re: Getting a list of all classes, etc...
  • Index(es):
    • Date
    • Thread