Sne*_*ess 40 iphone objective-c app-store reachability appstore-approval
我已经找到了几个代码来做我想做的事情(检查可达性),但似乎没有一个对我有用.我无法弄清楚为什么这不好玩.
我的项目中有reachability.h/m,我正在做
#import <SystemConfiguration/SystemConfiguration.h>
Run Code Online (Sandbox Code Playgroud)
我添加了框架.我也有:
#import "Reachability.h"
Run Code Online (Sandbox Code Playgroud)
在.m的顶部,我正在尝试使用可达性.
Reachability* reachability = [Reachability sharedReachability];
[reachability setHostName:@"http://www.google.com"]; // set your host name here
NetworkStatus remoteHostStatus = [reachability remoteHostStatus];
if(remoteHostStatus == NotReachable) {NSLog(@"no");}
else if (remoteHostStatus == ReachableViaWiFiNetwork) {NSLog(@"wifi"); }
else if (remoteHostStatus == ReachableViaCarrierDataNetwork) {NSLog(@"cell"); }
Run Code Online (Sandbox Code Playgroud)
这给了我各种各样的问题.我究竟做错了什么?我是一个好的程序员,我只是很难找到需要放在哪里以启用我想要做的事情,无论我想知道我想做什么或不想做什么.(太令人沮丧了)
更新:这是正在发生的事情.这是我的viewcontroller,我有
#import <SystemConfiguration/SystemConfiguration.h>
Run Code Online (Sandbox Code Playgroud)
和
#import "Reachability.h"
Run Code Online (Sandbox Code Playgroud)
设置.到目前为止,这是我最不喜欢的编程部分.可达性问题http://sneakyness.com/reachability.png
FWIW,我们从未在代码中实现这一点.需要访问互联网(进入抽奖活动和购买DVD)的两个功能不是主要功能.没有其他需要互联网访问.
我们只是将两个互联网视图的背景设置为告知用户必须连接到互联网以使用此功能的通知,而不是添加更多代码.它与应用程序界面的其余部分一致,并且做得很好/很有品味.他们在审批过程中没有提及任何相关信息,但我们确实接到了个人电话,以确认我们是否赠送了与电影有关的内容.根据他们通常含糊的协议,否则您不得进行抽奖活动.
我也认为这更严格地遵守他们的"只使用一些东西,如果你绝对需要它们"的思想.
Ken*_*ner 66
从您的屏幕截图中,您似乎没有为项目添加可达性.您必须从Apple下载Reachability:
https://developer.apple.com/library/content/samplecode/Reachability/Introduction/Intro.html
并将.h和.m文件添加到项目中.
更新:您注意到您有可达性.但是看看最新版本,我可以看到为什么你有你列出的错误 - 他们改变了API,你可能正在使用你在其他地方找到的示例代码.尝试:
在.h文件中:
//import Reachability class
#import "Reachability.h"
// declare Reachability, you no longer have a singleton but manage instances
Reachability* reachability;
Run Code Online (Sandbox Code Playgroud)
在.m文件中:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNetworkChange:) name:kReachabilityChangedNotification object:nil];
reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if(remoteHostStatus == NotReachable) {NSLog(@"no");}
else if (remoteHostStatus == ReachableViaWiFi) {NSLog(@"wifi"); }
else if (remoteHostStatus == ReachableViaWWAN) {NSLog(@"cell"); }
.....
- (void) handleNetworkChange:(NSNotification *)notice
{
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if(remoteHostStatus == NotReachable) {NSLog(@"no");}
else if (remoteHostStatus == ReachableViaWiFi) {NSLog(@"wifi"); }
else if (remoteHostStatus == ReachableViaWWAN) {NSLog(@"cell"); }
}
Run Code Online (Sandbox Code Playgroud)
Rap*_*aad 29
[reachability setHostName:@"http://www.google.com"];
Run Code Online (Sandbox Code Playgroud)
注意!我遇到的问题是,如果使用http://前缀,它总是"NotReachable".
拉斐尔
这是正确的代码,因为它今天适合我!
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNetworkChange:) name: kReachabilityChangedNotification object: nil];
reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if(remoteHostStatus == NotReachable) {NSLog(@"no");}
else if (remoteHostStatus == ReachableViaWiFi) {NSLog(@"wifi"); }
else if (remoteHostStatus == ReachableViaWWAN) {NSLog(@"cell"); }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64232 次 |
| 最近记录: |