Ios UIWebview应仅调用一次AstartLoadWithRequest委托方法(不一致)
我正在将带有一些js代码的本地html模板加载到webview中。它大部分时间都有效。但是有时候,Ios UIWebview应仅调用一次AstartLoadWithRequest委托方法(不一致),ios,objective-c,uiwebview,Ios,Objective C,Uiwebview,我正在将带有一些js代码的本地html模板加载到webview中。它大部分时间都有效。但是有时候,应该用request调用委托一次,以后就不会调用了。顺便说一下,我在iOS 9.1及更高版本中看到了这个问题 每当出现此问题时,如果我重新创建webview并加载相同的内容,那么它就可以正常工作。所以,我想知道为什么它第一次不起作用(不一致),但第二次起作用 我打电话来 [_webView setDelegate:nil]; //and [_webView stopLoading]; in de
应该用request
调用委托一次,以后就不会调用了。顺便说一下,我在iOS 9.1及更高版本中看到了这个问题
每当出现此问题时,如果我重新创建webview并加载相同的内容,那么它就可以正常工作。所以,我想知道为什么它第一次不起作用(不一致),但第二次起作用
我打电话来
[_webView setDelegate:nil];
//and
[_webView stopLoading]; in dealloc method.
如果有人能提出一些建议,那会很有帮助。我想你的网络视图在某个地方失去了它的委托。所以它可能只是在代码中的某个地方用另一个重置它,或者只是用nil种子。通过查看您发布的代码,我可以预测这种情况-两个实例引用了此webView。一个实例应该删除,它调用dealloc方法-webView委托设置为nil,但另一个实例仍然使用相同的webView,但现在它有委托nil。由于代理为零,webView不会向他发送任何消息。这只是我的预测,但你还是应该检查你的代表是否为零,然后开始新的问题研究。祝你好运。请检查@Avijit,添加“谢谢”与编辑应该做的相反。事实上,我们鼓励你从帖子中删除感谢,请参见嗨,谢谢。我已经检查了委托,并且在js执行期间没有将其设置为零。而且,我一次只使用一个实例。每次都会创建一个新的webview实例以供执行。您也可以简单地通过向shouldStartLoadWithRequest方法添加任何输出字符串来检查它-如果有任何内容将输出到控制台,而不是委托正确响应,那么您现在只有一个无响应的实例(响应的实例可能在其他地方,甚至失去引用)