ios – Objective-C到Swift的可达性

我正在尝试转换我的可达性功能.在桥接
Objective-c .h和.m文件之后.现在我有一个函数,我打电话来检查Objective-C中的可达性,我想在swift转换这里是Objective-C中的代码

-(void)reachabilityCheck
    {
        @try {
            Reachability *__autoreleasing reach = [Reachability reachabilityForInternetConnection];
            if (reach.currentReachabilityStatus) {
                self.isReachable = YES;
            }
            else
            {
                self.isReachable =  NO;
            }
        }
        @catch (NSException *exception) {
            //// [Global writeToLogFile:[exception description]];
        }
        @finally {

        }

我像Objective-C一样在Objective-C中调用此函数

[self reachabilityCheck];

我还在C中编写了TryCatch,并且还包含在桥头中.我的try catch函数现在看起来像这样

func reachabiltyCheck()
    {
        TryCatch.try({
            // try something

            }, catch: { (error) in
                println("\(error.description)")

            }, finally: {
                // close resources

        })
    }

现在在Reachability的第一行* __ autoreleasing reach = [Reachability reachabilityForInternetConnection];我不知道如何在swift中转换它,以及* _autorealeasing在这里意味着什么?

编辑1
如果我做这样的功能它给我错误

func reachabiltyCheck()
    {
        TryCatch.try({
            // try something
            var reach: Reachability = Reachability.reachabilityForInternetConnection();
            var b = reach.currentReachabilityStatus();

            if(b)  // Error : Type 'NetworkStatus' does not conform to protocol 'BooleanType' 
            {
                self.isReachable = Yes;
            }
            else
            {
                self.isReachable = Yes;
            }

            }, catch: { (error) in
                println("\(error.description)")

            }, finally: {
                // close resources

        })

如果我打印b值它打印(枚举值)有什么问题?

最佳答案 Swift默认使用自动引用计数,您不需要明确声明它应该自动释放.事实上,如果您的Objective-C项目使用ARC,您也不必使用自动释放.

点赞