我试图理解three20 ttnavigator示例代码,在MenuController.h文件中,它如下:
typedef enum {
MenuPageNone,
MenuPageBreakfast,
MenuPageLunch,
MenuPageDinner,
MenuPageDessert,
MenuPageAbout,
} MenuPage;
@interface MenuController : TTTableViewController {
MenuPage _page;
}
@property(nonatomic) MenuPage page;
@end
我不明白为什么将MenuPage _page声明为实例变量,而在@property部分中声明了另一个变量MenuPage页面。在MenuController.m文件中,合成了MenuPage页面,而不是_page。
这合法吗?
我知道它有效,因为它编译,但我不明白为什么我们不需要设置@property (nonatomic, retain) MenuPage _page
或在界面中声明MenuPage page
。
谢谢!
答案 0 :(得分:0)
MenuController.m中的这一行
@synthesize page = _page;
将财产连接到ivar。 (它告诉编译器使用_page
ivar来存储page
属性的值。)