On Sep 24, 2013, at 8:38 AM, Koen van der Drift <koenvanderdr...@gmail.com> 
wrote:

> In my app I am using a 3rd party framework, and I have subclassed (objB) one 
> of the classes (objA) for additional functionality. 
> 
> At one point I am getting an NSCountedSet from the framework with objects 
> objA.  When I enumerate these, I'd like to cast them as objB, to access the 
> additional functionality (doSomethingNew).  But whatever I try, the objects 
> are always casted as objA.
> 
> NSCountedSet *cs = [framework countSymbols];
> 
>        for (objB *obj in cs)
>        {            
>            NSDictionary *ec = [objB doSomethingNew];  <<== throws error, 
> because objA doesn't know about doSomethingNew
> 
>    //    etc
>    }
> 
> 
> or:
> 
> NSCountedSet *cs = [framework countSymbols];
> 
>        for (id *obj in cs)
>        {            
>            NSDictionary *ec = [((ObjB*) obj) doSomethingNew];  <<== throws 
> error, because objA doesn't know about doSomethingNew
> 
>    //    etc
>    }
> 
> 
> Is it possible what I am trying to do?

No, this doesn't make sense. Casting just tells the compiler "I know better 
than you and can guarantee you this expression is actually of this type". It 
doesn't "convert" objects from one type to another—how would it even do that?

--Kyle Sluder

_______________________________________________

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