I’m updating the code in an app I didn’t write while at the same time basically teaching myself objective C so am a beginner with this stuff.
I have a class called TableViewController and in it I have a method that is fired once a JSON feed successfully gets some data. This method is called:
- (void)JSONFetch:(MYJSONFetch *)fetch didDownloadCollection:(id)collection
{
//CODE HERE
}
I have a bunch of other classes that inherit from this class and in turn they call their own version of this method and add their own bits of functionality to the mix.
So for example I have a class called CategoryViewController that has this method defined in it:
- (void)JSONFetch:(MYJSONFetch *)fetch didDownloadCollection:(id)collection
{
[super didDownloadCollection:collection];
}
Notice the SUPER call there, ideally it should be able to access all the code in the parent’s method and its own code as well.
In the .h file on the category controller I have this:
#import "MYTableViewController.h"
@interface MYCategoryViewController : MYTableViewController
{
//code here
}
So it should be able to ‘see’ the other code, but I get this error on the SUPER line:
Instance method '-didDownloadCollection' not found (return type defaults to 'id')
Which presumably means it actually can’t see the parent method. It’s not set as private as far as I can tell, the .h explicitly mentions the inheritance and other method calls happily bounce back and forth between the two.
So, something I’ve done has borken this good and I’ve no idea what. I’ve an inkling it must be in the MYJSONFetch code, but am not sure.
Anyone shed any light on this, hours spent trying to figure out why it can’t see the parent method.
The method is
- (void)JSONFetch:(MYJSONFetch *)fetch didDownloadCollection:(id)collectionSo you have to call