【发布时间】:2014-01-27 12:11:12
【问题描述】:
当您使用单视图模板启动您的应用,并在 AppDelegate.m 的application: didFinishLaunchingWithOptions: 方法的第一行添加NSLog(@"self.window = %@", self.window); 时,您可以看到self.window 存在于您的应用中。
但是,当您使用空模板启动应用程序并尝试将self.window 记录到控制台时,结果返回null。即使您添加了故事板和视图控制器,并将其视图控制器设置为初始视图控制器,并尝试记录 self.window,结果是相同的 - 其值设置为 null。
请注意,无论您采用哪种方式,您都可以在 AppDelegate.h 中找到默认声明 @property (strong, nonatomic) UIWindow *window;。所以我想知道为什么在第一种情况下,您可以看到 self.window 已初始化并设置了值,但在后一种情况下却没有。另外,如果self.window在第一种情况下已经声明并初始化,但在第二种情况下没有,我怎样才能找到初始化代码?
看起来在这两种情况下,@property 声明是相同的 - 正如我所提到的,在这两种情况下,我都尝试在AppDelegate.m 的@987654334 的第一行中记录self.window 的值@方法。
那么我错过了什么?尽管我在代码和情节提要中没有发现任何差异,但我不知道为什么这两种情况的行为不同。
我使用 iOS 7 和 Xcode 5。谢谢。
【问题讨论】:
标签: ios objective-c appdelegate uiwindow