Hi,

In Objective-C, is it possible to override a property and have it return a 
different type to the base class?

I have a base class with the following property defined:

@property (nonatomic,retain)                    ClassA*                 propA;

and the following getter:


-(ClassA*) propA
{
return someValueOfClassA;
}


I’d like to override this in my subclass, as so:

-(ClassB*) propA
{
ClassA*                 myClassA;
ClassB*                 myClassB;

myClassA = super.propA;
myClassB = [[ClassB alloc] initWithClassA:myClassA]; //ClassB is a subclass of 
Class A

return myClassB;
}

I can do this ok, but when I access the property:

// myClassA is already setup OK
ClassB*                         myClassB;

myClassB = myClassA.propA;                      //Warning on this line saying 
return type is not ClassB

and I have to coerce the value to be ClassB to get rid of the warning. Is there 
any way to avoid this?

Thanks a lot
Dave







_______________________________________________

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