Xcode中基于导航的应用程序不会自动生成窗口和navigationController

时间:2011-04-24 13:35:56

标签: iphone objective-c xcode ios

在Apple示例代码中,AppDelegate包含window和navigationController作为实例变量。 (http://developer.apple.com/library/ios/#samplecode/TableViewSuite/Listings/1_SimpleTableView_Classes_SimpleTableViewAppDelegate_h.html%23//apple_ref/doc/uid/DTS40007318-1_SimpleTableView_Classes_SimpleTableViewAppDelegate_h-DontLinkElementID_5)

@interface SimpleTableViewAppDelegate : NSObject <UIApplicationDelegate> {

    UIWindow *window;
    UINavigationController *navigationController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) UINavigationController *navigationController;

XCode4生成的代码只有

这么简单
@interface SimpleTableViewAppDelegate : NSObject <UIApplicationDelegate> {
}
  1. 为什么可以错过这两个实例变量?
  2. 为什么只需要将*窗口声明为IBOutlet,而不是* navigationController?
  3. 感谢。

1 个答案:

答案 0 :(得分:0)

Xcode 4使用的LLVM编译器可以自动为合成属性生成实例变量。声明并合成属性时,编译器将自动生成相应的ivar。这是一个很棒的功能,因为它不仅可以节省打字,还可以使类的外部界面更清晰。