我正在尝试转换我的可达性功能.在桥接
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,您也不必使用自动释放.