我在扩展WebView的类中有以下方法
- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"WEBVIEW - Start Load");
static BOOL isFirstLaunch = YES;
if (isFirstLaunch) {
isFirstLaunch = NO;
} else {
[webView stringByEvaluatingJavaScriptFromString:@"localStorage.states = '[{},{\"name\":\"Dashboard\"}]'"];
}
// webView connected
webviewTimeout = [NSTimer scheduledTimerWithTimeInterval:kWebViewLoadTimeOut target:self selector:@selector(webViewTimeout) userInfo:nil repeats:NO];
}
程序执行时跳过static
声明和if else
。在Xcode调试器中我注意到了这一点。
我的代码看不出任何问题。我虽然可能是由于方法中的static BOOL
变量声明,但我在.m文件中的任何块中声明它。但if else
仍未执行。我还尝试在加载WebView之前将代码放在ViewController类中,但是提到的代码仍未执行。我在这里缺少什么?
更清楚:我注意到Xcode Debugger没有执行代码。我在NSLog
中的方法开头设置了断点,如果我在if else
或static
变量声明中的任何部分放置任何断点,似乎忽略它,并且没有休息完成了。
提前致谢。
答案 0 :(得分:1)
编译器优化有时会混淆调试器。他们可以重新排列指令甚至删除代码。关闭它们可以更容易地逐步执行代码。
答案 1 :(得分:0)
您确定已完成以下操作:
// set yourself as the delegate
webView.delegate = self;
// begin loading
[webView loadRequest:[NSURLRequest requestWithURL:@"http://www.someURLHere.com"]];