Ios 如何同步检查internet连接?
如何同步检查网络?我希望网络检查阻止调用线程并返回正确的结果 我试过了,但他们都使用了回调块。这意味着在回调之前,可达性状态是未知的 我想用选项检查Ios 如何同步检查internet连接?,ios,connection,afnetworking,reachability,Ios,Connection,Afnetworking,Reachability,如何同步检查网络?我希望网络检查阻止调用线程并返回正确的结果 我试过了,但他们都使用了回调块。这意味着在回调之前,可达性状态是未知的 我想用选项检查ApplicationIDFinishLaunching上的网络:,但此时,可达性是AfNetworkReachibilityStatusUnknown(AfNetworkReachibilityManager)或不可靠(tonymillion的可达性) 我发现唯一的方法是对某个主机(例如google.com)执行NSURLConnection,如下
ApplicationIDFinishLaunching上的网络:
,但此时,可达性是AfNetworkReachibilityStatusUnknown
(AfNetworkReachibilityManager)或不可靠(tonymillion的可达性)
我发现唯一的方法是对某个主机(例如google.com)执行NSURLConnection,如下所示
有没有更好的方法来回答我自己的问题:它是可靠的 读这个 可达性-系统配置框架可达性API ()同步运行 默认情况下。因此,看似无害的惯例,如 SCNetworkReachabilityGetFlags会让你被看门狗杀死。如果 如果您使用的是可达性API,那么应该异步使用它。 这涉及使用SCNetworkReachabilityScheduleWithRunLoop 在运行循环中安排可达性查询的例程 所以我们可以这样使用它
您可以随时检查currentReachabilityStatus属性,而无需启动监视。请小心在
ApplicationIDFinishLaunchingWithOptions
中阻止线程。如果你阻止它太长时间,应用程序将自动关闭。@LyricalPanda谢谢你的建议,并为这样糟糕的例子感到抱歉:)只需关注这个问题
- (BOOL) isConnectionAvailable
{
SCNetworkReachabilityFlags flags;
BOOL receivedFlags;
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(CFAllocatorGetDefault(), [@"dipinkrishna.com" UTF8String]);
receivedFlags = SCNetworkReachabilityGetFlags(reachability, &flags);
CFRelease(reachability);
if (!receivedFlags || (flags == 0) )
{
return FALSE;
} else {
return TRUE;
}
}