return语句不会停止方法执行

时间:2014-08-22 11:01:58

标签: objective-c ios7 xcode5

最近,我面临着iOS编​​译器的奇怪行为。我写了一个名为hasConnectivity的方法。在此方法中,首先我使用Rechability类检查Internet连接是否可用。如果是,那么我再次通过致电NSURLRequest来检查网络。

以下是我的代码:

-(BOOL)hasConnectivity {

    if(!isOnline)
    {
        return TRUE;
    }

    NSURL* url = [NSURL URLWithString:@"http://www.apple.com/"];
    NSStringEncoding encoding;
    NSError* error = nil;
    NSString* pageData = [NSString stringWithContentsOfURL:url
                                          usedEncoding:&encoding error:&error];
    NSLog(@"page data=%@",pageData);


    if(pageData)
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }

}

当我调用此方法时,Control进入第一个块并执行return TRUE;语句,因此理想情况下控制应从该点返回但不从该点返回。相反,它跳转到下一个块(如果是pageData的条件)并执行return FALSE;语句。

我重新启动Xcode也重启了PC并调试了很多次,但我仍然没有取得成功。如果有人遇到同样的问题,那么请给我解决方案。

1 个答案:

答案 0 :(得分:1)

确保您构建的构建配置(如果未更改默认值,可能为Debug)已关闭优化:

enter image description here

在调试时启用优化可能会导致类似这样的奇怪问题。