[iphone] 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?

This question is related to iphone ios objective-c forward-declaration

The answer is


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.

Similar questions with iphone tag:

Similar questions with ios tag:

Similar questions with objective-c tag:

Similar questions with forward-declaration tag: