sudo rm -rf
sudo rm -rf

Reputation: 29524

Typedef enum setting and accessing

I have this before the interface declaration in my MainView.h header.

typedef enum { UNKNOWN, CLEAR, NIGHT_CLEAR, CLOUDY, NIGHT_CLOUDY } Weather;

Then I declared it like this:

Weather weather;

Then made an accessor:

@property Weather weather;

And synthesized it.

My question is, how can I use this in a different class without it crashing? I've imported the header for MainView. I tried to use it like this:

MainView* myView = (MainView*)self.view;

[myView setWeather: CLEAR];

It doesn't throw me any errors in Xcode, but it crashes when the code is run, saying:

-[UIView setWeather:]: unrecognized selector sent to instance *blah*

Am I doing something wrong here?

Upvotes: 3

Views: 4116

Answers (2)

Rits
Rits

Reputation: 5175

You have to remove the * in Weather* weather. weather has to be an integer, not a pointer.

Upvotes: 1

westsider
westsider

Reputation: 4985

'Weather' is a type not a variable.

So, you want something like this:

Weather theWeather = [mainView weather];
if (theWeather == CLEAR)
{
<do something>
}

Where MainView has ivar:

 Weather weather;

Upvotes: 6

Related Questions