Re: Casting objects in NSCountedSet
Re: Casting objects in NSCountedSet
- Subject: Re: Casting objects in NSCountedSet
- From: Kyle Sluder <email@hidden>
- Date: Tue, 24 Sep 2013 08:52:20 -0700
On Sep 24, 2013, at 8:38 AM, Koen van der Drift <email@hidden> 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 (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