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;
    }
}