UIWindow bounds/frame为null

Jov*_*van 3 iphone ios xcode4.2

我正在创建一个没有nib文件的ios应用程序,并希望在应用程序委托中初始化窗口,如下所示:

CGRect screenBounds = [[UIScreen mainScreen] bounds];
self.window = [[[UIWindow alloc] initWithFrame:screenBounds] autorelease];
self.window.backgroundColor = [UIColor greenColor];

NSLog(@"%@", self.window.bounds);
Run Code Online (Sandbox Code Playgroud)

窗口出现,我可以看到我定义的绿色.当我调试self.window时,我会看到我刚刚定义的帧的边界,但是当我想访问bounds属性时,它返回null.与框架相同.有什么不同?

当我想要接下来初始化视图时,它将无法工作,因为未定义框架/边界来初始化该视图:

// create root view
RootView* rootView = [[[RootView alloc] initWithFrame:self.window.bounds] autorelease];
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

dea*_*rne 6

是的,这不会起作用

NSLog(@"%@", self.window.bounds);
Run Code Online (Sandbox Code Playgroud)

窗口的边界不是对象,因此%@不能用于显示它:)

尝试将其CGRect转换为NSString *第一个:

NSLog(@"%@", NSStringFromCGRect(self.window.bounds));
Run Code Online (Sandbox Code Playgroud)

这应该会给你一些调试信息,以帮助你解决问题:)

NB%@只是调用description对象并显示它.