覆盖viewDidAppear并让它加载特定的URL不行吗?

时间:2013-06-27 22:56:59

标签: iphone ios objective-c viewdidappear

我正在查看其他人的代码,并注意到每次附加图片时都会刷新网页表单(点击“添加图片”,查找并选择图片,返回表单,表单变为空白)。而且,这是因为网址被重新加载。在跟踪这个问题时,我注意到原始开发人员覆盖了WebViewController中的viewDidAppear实例方法,如下所示:

- (void) viewDidAppear:(BOOL)animated {

    NSURL *url = [NSURL URLWithString:self.defaultUrl];

    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

    [self.webView loadRequest:requestObj];
}

Apple的文档说

  

您可以覆盖此方法以执行与显示视图相关的其他任务。如果重写此方法,则必须在实现中的某个时刻调用super。

我认为超级没有被调用,我认为加入NSURLRequest并不是一个好习惯。我删除了代码,添加了URL调用按钮操作,一切都很好,所以这主要是一个风格/学术问题。

你是否同意loadRequest不应该在那里?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

为什么不应该在那里? loadRequest在另一个线程上异步工作,因此它不会阻塞主线程。

  

通过启动异步客户端请求连接到给定的URL。

如果它的行为符合预期,则由您决定。

(哦,是的,你应该在viewDidAppear)中打电话给超级