Hi all,

I'm having trouble getting this to work how I think it should, i must be 
missing something.

I have an abstract base class A and a mutable subclass AM. The class A owns a 
list of subsidiary objects but only the class AM has the methods for adding and 
removing these , which is what 'mutable' means for this class.

There are a series of concrete subclasses B, C, D, etc which all set up the 
subsidiary objects in various configurations when they are initialized, but 
once done, the clients of these objects have no business mutating them so they 
need to be returned as the immutable variant. However, in order to work during 
setup they are in fact subclasses of AM. Is there a way to return them as if 
they were subclasses of A, so that the existence of the mutating methods is 
hidden from the client code?

It only needs to go as far as flagging a compile warning if the client attempts 
to use a mutating method, it doesn't need to go as far as return NO from 
-respondsToSelector: for these methods, since in reality they are in fact AM 
subclasses. Is it just a case of putting these methods into a category that is 
included by B, C, D but not by client code, so that such methods don't exist in 
the public interface? What's the usual solution?

--Graham




_______________________________________________

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to