最近,我面临着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并调试了很多次,但我仍然没有取得成功。如果有人遇到同样的问题,那么请给我解决方案。
答案 0 :(得分:1)
确保您构建的构建配置(如果未更改默认值,可能为Debug
)已关闭优化:
在调试时启用优化可能会导致类似这样的奇怪问题。