gpt4 book ai didi

iphone - 在 iOS 上,如果 View Controller 还没有 View ,为什么 NSLog( @"self.view is %p", self.view) 会崩溃?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:09:39 27 4
gpt4 key购买 nike

如果在 Xcode 4.3.2 和 AppDelegate.m 中使用 Empty App 模板创建新的 iOS 项目:

self.window.rootViewController = [[FooViewController alloc] init];

FooViewControllerviewDidLoad 中,如下:

NSLog(@"self.view is %p", self.view);
NSLog(@"self.view is %@", self.view);

将打印出 View ,因此看起来默认的 loadView 将实例化一个 View 并将其分配给 self.view

因此,如果我用一个全空的方法覆盖 loadView,并注释掉上面的第二个 NSLog 语句,我期望第一个 NSLog 语句打印出 0x0,但由于 NSLog 行的内存访问错误,应用程序崩溃了。为什么会这样?

最佳答案

好吧,在一个下意识的明显错误的答案之后,我尝试了这个。 Empty App 模板不会有 rootViewController,所以我使用了一个单一的屏幕模板。运行后,我看到你正在发生堆栈溢出。在尝试访问 self.view 时,您正在调用父类(super class)的 view 属性,然后它试图加载 View 以返回它,据我所知,它正在调用 viewDidLoad 等。另一个 NSLog 语句做同样的事情。

关于iphone - 在 iOS 上,如果 View Controller 还没有 View ,为什么 NSLog( @"self.view is %p", self.view) 会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10744119/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com