• 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: Subclassing/Override question
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Subclassing/Override question


  • Subject: Re: Subclassing/Override question
  • From: Jeff Kelley <email@hidden>
  • Date: Mon, 04 Jan 2016 11:40:50 -0500

Hi Dave,

	For myClassA, you will always have to cast the return value to myClassB if you know that’s what will be returned. For a great blog post on the subject, I give you Mike Ash:

https://mikeash.com/pyblog/friday-qa-2015-11-20-covariance-and-contravariance.html


Jeff Kelley

email@hidden | @SlaunchaMan <https://twitter.com/SlaunchaMan> | jeffkelley.org <http://jeffkelley.org/>
> On Jan 4, 2016, at 11:24 AM, Dave <email@hidden> wrote:
>
> 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 (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: Subclassing/Override question
      • From: Peter Tomaselli <email@hidden>
References: 
 >Subclassing/Override question (From: Dave <email@hidden>)

  • Prev by Date: Subclassing/Override question
  • Next by Date: Re: Subclassing/Override question
  • Previous by thread: Subclassing/Override question
  • Next by thread: Re: Subclassing/Override question
  • Index(es):
    • Date
    • Thread