我在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*
我在这里做错了吗?
答案 0 :(得分:6)
'天气'是一种不是变量的类型。
所以,你想要这样的东西:
Weather theWeather = [mainView weather];
if (theWeather == CLEAR)
{
<do something>
}
MainView有ivar的地方:
Weather weather;
答案 1 :(得分:1)
在C中,Weather将是一个类型定义,而不是变量。
答案 2 :(得分:1)
您必须删除*
中的Weather* weather
。 weather
必须是整数,而不是指针。