为什么代码没有被执行?

时间:2014-05-13 13:38:53

标签: ios objective-c

我在扩展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 elsestatic变量声明中的任何部分放置任何断点,似乎忽略它,并且没有休息完成了。

提前致谢。

2 个答案:

答案 0 :(得分:1)

编译器优化有时会混淆调试器。他们可以重新排列指令甚至删除代码。关闭它们可以更容易地逐步执行代码。

答案 1 :(得分:0)

您确定已完成以下操作:

// set yourself as the delegate
webView.delegate = self;

// begin loading
[webView loadRequest:[NSURLRequest requestWithURL:@"http://www.someURLHere.com"]];