• 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: NSTimeZone and Abstract Classes
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSTimeZone and Abstract Classes


  • Subject: Re: NSTimeZone and Abstract Classes
  • From: Joe Muscara <email@hidden>
  • Date: Wed, 31 Oct 2001 15:51:10 -0600

Thanks Simon. You're probably right. I think I have been in denial because of the additional work I'll have to do assuming that NSTimeZone is a class cluster.

So now the question (to you or anyone) becomes "how do I determine what are the primitive methods that I must override in my subclass?" I haven't found where these may be noted in any of the docs. I could find them via trial and error, but I would hope there is a better way.

Joe


On Wednesday, October 31, 2001, at 04:48 AM, Simon Stapleton wrote:

I've defined ClockieTimeZone as a subclass of NSTimeZone. It's a
pretty minimal implementation, with the intent of adding one
variable and a method or two. Otherwise, I just want the
functionality of NSTimeZone (name, description,
isDaylightSavingsTime, etc.).

Unfortunately, every time I send a ClockieTimeZone instance a
message that includes a selector that's in NSTimeZone, I get an
error in the Console like the one below. I even get these when
initWithName is called. Can anyone tell me what I've obviously
overlooked?

"-name only defined for abstract class. Define -[ClockieTimeZone
name]!"

Well, my guess is that NSTimeZone is actually a class cluster, and
thus you have to implement all of the primitive selectors in your
subclass. Why? Well, the abstract (public) superclass of a cluster
has no (or, possibly, limited) instance variables due to the fact it
knows nothing about the implementation of its subclasses. It cannot,
therefore, provide any meaningful implementation of selectors that
would access such instance variables, hence the error you're seeing.
So, as the error would suggest, you need to define those 'primitive'
selectors in your subclass (-name, in this case[1]).


  • Follow-Ups:
    • Re: NSTimeZone and Abstract Classes
      • From: Chris Kane <email@hidden>
References: 
 >Re: NSTimeZone and Abstract Classes (From: Simon Stapleton <email@hidden>)

  • Prev by Date: Re: Question about "swappable" views
  • Next by Date: Re: Blocking the net
  • Previous by thread: Re: NSTimeZone and Abstract Classes
  • Next by thread: Re: NSTimeZone and Abstract Classes
  • Index(es):
    • Date
    • Thread