Typedef枚举设置和访问

时间:2010-10-26 18:14:24

标签: iphone objective-c enums typedef

我在MainView.h标题中的接口声明之前有这个。

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

然后我宣布这样:

Weather weather;

然后做了一个访问者:

@property Weather weather;

并合成它。

我的问题是,我怎样才能在不同的类中使用它而不会崩溃? 我已经为MainView导入了标题。 我试着像这样使用它:

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

[myView setWeather: CLEAR];

它不会在Xcode中引发任何错误,但在代码运行时它会崩溃,并说:

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

我在这里做错了吗?

3 个答案:

答案 0 :(得分:6)

'天气'是一种不是变量的类型。

所以,你想要这样的东西:

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

MainView有ivar的地方:

 Weather weather;

答案 1 :(得分:1)

在C中,Weather将是一个类型定义,而不是变量。

查看typedef enum in Objective C

答案 2 :(得分:1)

您必须删除*中的Weather* weatherweather必须是整数,而不是指针。