【发布时间】:2014-05-13 22:34:15
【问题描述】:
我在扩展 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 调试器执行。我在NSLog 的方法开头放置了一个断点,如果我在if else 或static 变量声明中的任何部分放置任何断点,似乎忽略它,并且没有中断。
提前致谢。
【问题讨论】:
-
你怎么知道它不起作用?请说明您是如何对此进行调查的,例如断点、
NSLogs 等 -
另外,您是否在打开优化的情况下进行构建?
-
您是否为 webview 指定了
delegate?这是一个UIWebViewDelegate方法。 -
@Rob,我忘了提,但是这个类也实现了 UIWebViewDelegate(我没有计划这个)
-
导致 webViewDidStartLoad 被调用的代码在哪里?您需要调用的 LoadXXX 方法之一。
标签: ios objective-c