加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 在loadView中访问self.view.frame会导致EXC_BAD_ACCES

发布时间:2020-12-14 19:48:28 所属栏目:百科 来源:网络整理
导读:我在视图控制器中具有以下内容(其中webView是UIWebView类型的实例变量): - (void)loadView{ webView = [[UIWebView alloc]initWithFrame:self.view.frame]; [self.view addSubview:webView];} 分配Web视图的第一行导致崩溃 – 我在控制台中获取EXC_BAD_ACCE
我在视图控制器中具有以下内容(其中webView是UIWebView类型的实例变量):

- (void)loadView
{
    webView = [[UIWebView alloc]initWithFrame:self.view.frame];
    [self.view addSubview:webView];
}

分配Web视图的第一行导致崩溃 – 我在控制台中获取EXC_BAD_ACCESS和消息:

Warning: Unable to restore previously selected frame

我不明白是什么造成事故; self.view.frame绝对是一个CGRect.

解决方法

由于您使用的是loadView方法,您必须手动创建自己的视图层次结构.因为UIWebView是UIView的一个子类,所以你可以这样写你的loadView方法:

webView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
self.view = webView;
[webView release];

或者您可以跳过使用loadView,并将其放在viewDidLoad方法中,如下所示:

webView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
[self.view addSubview:webView];
[webView release];

为了进一步阐述您的应用程序崩溃的原因,当UIViewController被实例化时,它的视图不是正确的创建.这被称为延迟加载,所以你试图访问一个不存在的值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读