iOS:在发布UIWebView之前,我必须调用-stopLoading吗?

iOS:在发布UIWebView之前,我必须调用-stopLoading吗?,ios,uiwebview,Ios,Uiwebview,是否有必要: [webView stopLoading]; self.webView = nil; 或者,我可以省略第一行吗?也就是说,-[UIWebView dealloc]是否为您调用-stopLoading?web视图将停止加载您不需要调用stopLoading。但它并没有在dealloc中停止。我相信当它从superview中删除时,它会停止加载。web视图将停止加载,您不需要调用stopLoading。但它并没有在dealloc中停止。我相信当它从superview中删除时它会停止。

是否有必要:

[webView stopLoading];
self.webView = nil;

或者,我可以省略第一行吗?也就是说,
-[UIWebView dealloc]
是否为您调用
-stopLoading

web视图将停止加载您不需要调用stopLoading。但它并没有在dealloc中停止。我相信当它从superview中删除时,它会停止加载。

web视图将停止加载,您不需要调用stopLoading。但它并没有在dealloc中停止。我相信当它从superview中删除时它会停止。

-停止加载可能是必要的,因为加载是在一个单独的线程中完成的,uiwebview保留在该线程中(作为web请求的回调)。如果您发布uiwebview(例如,在
-viewDidUnload
方法中),我非常确定它将停止加载,但当它停止加载时,它将调用其委托。

如果不设置
yourWebView.delegate=nil
,这将失败,因为委托属性定义为assign属性,因此不会保留委托对象(很可能是uiviewcontroller)。不将委托设置为nil将导致EXEC_BAD_访问(实际上,您可以杀死一些应用程序,在这些应用程序中,您可以非常快地在包含网络视图的子视图之间切换-它们在完成加载并尝试调用僵尸委托之前被释放)。同样适用于MKMapView

-停止加载可能是必要的,因为加载是在一个单独的线程中完成的,其中uiwebview被保留(作为web请求afaik的回调)。如果您发布uiwebview(例如,在
-viewDidUnload
方法中),我非常确定它将停止加载,但当它停止加载时,它将调用其委托。
如果不设置
yourWebView.delegate=nil
,这将失败,因为委托属性定义为assign属性,因此不会保留委托对象(很可能是uiviewcontroller)。不将委托设置为nil将导致EXEC_BAD_访问(实际上,您可以杀死一些应用程序,在这些应用程序中,您可以非常快地在包含网络视图的子视图之间切换-它们在完成加载并尝试调用僵尸委托之前被释放)。同样适用于MKMapView