Search code examples
iphoneiosobjective-cforward-declaration

receiver type *** for instance message is a forward declaration


In my iOS5 app, I have NSObject States class, and trying to init it:

states = [states init];

here is init method in States:

- (id) init
{
    if ((self = [super init]))
    {
        pickedGlasses = 0;
    }

    return self;
}

But there is error in the line states = [states init];

receiver type "States" for instance message is a forward declaration

What does it mean? What am I doing wrong?


Solution

  • That basically means that you need to import the .h file containing the declaration of States.

    However, there is a lot of other stuff wrong with your code.

    • You're -init'ing an object without +alloc'ing it. That won't work
    • You're declaring an object as a non-pointer type, that won't work either
    • You're not calling [super init] in -init.
    • You've declared the class using @class in the header, but never imported the class.