Objective-C subclass and base class casting

Posted by ryanjm.mp on Stack Overflow See other posts from Stack Overflow or by ryanjm.mp
Published on 2010-06-08T15:43:25Z Indexed on 2010/06/08 16:02 UTC
Read the original article Hit count: 249

Filed under:
|
|

I'm going to create a base class that implements very similar functions for all of the subclasses. This was answered in a different question. But what I need to know now is if/how I can cast various functions (in the base class) to return the subclass object. This is both for a given function but also a function call in it.

(I'm working with CoreData by the way)

As a function within the base class (this is from a class that is going to become my subclass)

+(Structure *)fetchStructureByID:(NSNumber *)structureID inContext:(NSManagedObjectContext *)managedObjectContext {...}  

And as a function call within a given function:

Structure *newStructure = [Structure fetchStructureByID:[currentDictionary objectForKey:@"myId"]];
                                              inContext:managedObjectContext];

Structure is one of my subclasses, so I need to rewrite both of these so that they are "generic" and can be applied to other subclasses (whoever is calling the function).

How do I do that?

Update: I just realized that in the second part there are actually two issues. You can't change [Structure fetch...] to [self fetch...] because it is a class method, not an instance method. How do I get around that too?

© Stack Overflow or respective owner

Related posts about objective-c

Related posts about subclass