使用可达性的语义问题

Posted

技术标签:

【中文标题】使用可达性的语义问题【英文标题】:Semantic Issue using Reachability 【发布时间】:2013-02-17 03:36:30 【问题描述】:

我已经被这个语义问题警告困扰了一个星期了,而且越来越令人沮丧。 有人愿意看看吗?任何建议都将被亲切地采纳。

WebViewController.m

#import "WebViewController.h"
#import "Reachability.h"

@implementation WebViewController
@synthesize webView;
@synthesize backbtn;
@synthesize forwardbtn;
@synthesize webAddy;
@synthesize activityIndicator;
@synthesize loadingLabel;


- (void)viewDidLoad 
    loadingLabel.hidden = YES;
    backbtn.enabled = NO;
    forwardbtn.enabled = NO;
    webView.scalesPageToFit = YES;
    activityIndicator.hidesWhenStopped = YES;

    if([Reachability currentReachabilityStatus] == NotReachable)
 
        UIAlertView *av = [[[UIAlertView alloc] 
                            initWithTitle:@"Sorry" 
                            message:@"You are not connected to the internet. Please Try again"
                            delegate:nil 
                            cancelButtonTitle:@"OK"
                            otherButtonTitles:nil] autorelease];
        [av setDelegate:self];
        [av show];
    
    else
    
        NSURL *url = [NSURL URLWithString:webAddy];
        NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
        [webView loadRequest:requestObj];
    

    [super viewDidLoad];

警告将我重定向到第 20 行。 编译器告诉我: "类方法 '+currentReachabilityStatus" 未找到(返回类型默认为 'id')"

如果需要更多信息,请告诉我。再次感谢大家!

【问题讨论】:

您是从哪里获得可达性实现的? @implementation Reachability 位于 Reachability.m 文件中。 【参考方案1】:

见here。

- (NetworkStatus) currentReachabilityStatus; 不是类方法。

【讨论】:

我知道 currentReachabilityStatus 是一个 NSObject,但是我需要做什么来纠正这个问题?【参考方案2】:

使用[[Reachability reachabilityForInternetConnection] currentReachabilityStatus] 代替[Reachability currentReachabilityStatus]

currentReachabilityStatus是一个实例方法,所以首先需要一个实例。

【讨论】:

同样的错误仍然存​​在,只是没有告诉我:“找不到类方法'+currentReachabilityStatus'”它告诉我...“找不到类方法'+reachabilityForInternetConnection'” @Sambo 请发布您的Reachability.h

以上是关于使用可达性的语义问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中使用可达性类

可达性与 UIDevice-可达性

使用 SWIFT 检查 IP 地址可达性

使用多个视图控制器时的可达性检查

使用 Terraform 创建可达性分析器路径

可达性和可达性WithHostName