我终于想出了如何使用apple Reachability文件,这是一件好事.
我的问题是,因为我有大约6个视图,每个视图都需要检查我是否连接到互联网.在我的应用程序中实现可访问性的最佳方法(包括NSNotificationCenter,以便在连接发生变化时自动知道)是什么,这样我就不会在每个类中复制和粘贴相同的代码.
我在我的app委托中假设一些东西.但是,如何实现NSNotificationCenter并让所有其他类知道连接何时发生变化?
如何快速检查iPhone是否连接到互联网,快速...
谢谢...
我正在制作一个需要互联网连接的应用程序.我正在寻找检查互联网连接并返回警报视图的最佳方法.我已经找到了解决方法,只能找到在iOS 4中完成上述操作的方法,但我正在制作的应用程序是在iOS 5中.
我已经看过苹果Reachability示例代码了,但是当我尝试实现时,这只会让我的代码错误变得疯狂(因为它是为iOS 4构建的).
编辑:当我将reachability.h文件导入我的项目时,我得到10个错误(其中6个我可以简单地修复)和4个我不知道该怎么做.
iphone connectivity reachability ios5 automatic-ref-counting
我在为项目添加可达性方面遇到了一些问题.我之前只是使用过Reachability,但这次我失败了.我总是有以下错误:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_Reachability", referenced from:
objc-class-ref in DelegatePrincipal.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我的项目不使用ARC(我不想要它),基础sdk 5.0,ARchitecture标准(armv7),我已经添加了SystemConfiguration.framework.
我还测试了Tony百万可达性,它不起作用.同样的问题.
我从其他主题中看到了同样的问题,但它与ARC有关.我的项目没有ARC.
另外,我在委托中进行了一个简单的测试,如下所示:
Reachability *reach = [Reachability reachabilityForInternetConnection];
NetworkStatus netStatus = [reach currentReachabilityStatus];
if (!netStatus == NotReachable) {
NSLog(@"Not connected");
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我在AFNetorking的Reachability上有点失落,并没有找到很多好的信息.
我有一个登录Web API的应用程序.每个VC以某种方式连接到API,因此每个VC都需要具有网络访问权限.我使用AFHTTPSessionManager的子类来发出网络请求.
我很困惑在哪里放置代码 - 它只是appDelegate还是在每个VC?
这段代码有什么用?
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));
}];
Run Code Online (Sandbox Code Playgroud)
你在哪里使用这些方法,它们如何与上面的代码相关?
-startMonitoring
-stopMonitoring
Run Code Online (Sandbox Code Playgroud) 我正在创建一个应用程序,通过使用if else语句检测是否存在与Internet的连接,当有互联网时,除了没有互联网连接之外什么也不做,然后提醒视图说应用程序需要互联网我管理发现可达性但是在我的viewDidLoad()上实现uialertview似乎无法正常工作.我用这个:
public class Reachability {
class func isConnectedToNetwork() -> Bool {
var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0))
zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {zeroSockAddress in
SCNetworkReachabilityCreateWithAddress(nil, zeroSockAddress)
}
}
var flags: SCNetworkReachabilityFlags = SCNetworkReachabilityFlags(rawValue: 0)
if SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) == false {
return false
}
let isReachable = flags == .reachable
let needsConnection = …Run Code Online (Sandbox Code Playgroud) 我试图通过以下代码获取网络状态
//define in my .h file
NetworkStatus internetConnectionStatus;
//define in my .m file
self.internetConnectionStatus = [[Reachability reachabilityForInternetConnection]currentReachabilityStatus];
Run Code Online (Sandbox Code Playgroud)
我到了self.internetconnection status = <null>.我在这做错了什么?
我试图在ios 5.1中使用Reachability,但它给了我一个Match-o Linker错误.我正在使用Xcode 4.3并使用armv6和armv7构建我的应用程序.我已经读过Reachability对armv7不好用,这可能导致错误.真的吗?如果是这样,是否有任何解决方法让我的应用程序检查互联网连接?是的,我已经导入了两个
Reachability.h
Run Code Online (Sandbox Code Playgroud)
和
SystemConfiguration.framework
Run Code Online (Sandbox Code Playgroud)
我的示例实现代码如下:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];
hostReachable = [Reachability reachabilityWithHostName: @"www.apple.com"];
[hostReachable startNotifier];
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在使用这段代码检查我的应用程序中的网络连接,如果存在连接,则拉取数据并显示它:
if([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] == NotReachable) {
errorView = [[UIAlertView alloc]
initWithTitle: @"Network Error"
message: @"No Network connection availible!"
delegate: self
cancelButtonTitle: @"OK" otherButtonTitles: nil];
[errorView show];
}
else
{
HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
[self.navigationController.view addSubview:HUD];
HUD.delegate = self;
HUD.labelText = @"Performing Initial Download";
HUD.minSize = CGSizeMake(135.f, 135.f);
[HUD showWhileExecuting:@selector(pullAndDisplayData) onTarget:self withObject:nil animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
但是,我想调整此代码,以便在整个下载过程中不断检查互联网连接,如果我失去连接,则停止下载并向用户显示相应的警报消息.任何人都可以建议我如何解决这个问题?
谢谢,
Tysin
我正试图弄清楚如何使用AFNetworking 2和Reachability显示"无互联网连接"警报.
我将Reachability和AFNetworking导入到我的Controller中.我的代码部分以我从AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:url];AFNetworking 2文档中复制开始,我不确定它是否属于它.
UPDATE
我的应用程序现在显示一个警报,只要没有互联网连接,但它需要太长时间才能显示警报,我也怀疑这是我可以构建我的代码的最佳方式.(另外如果我在主视图控制器上,当没有连接时我点击一个单元格应用程序崩溃,我不知道是否有办法解决这个问题).
- (void)viewDidLoad
{
[super viewDidLoad];
Reachability * reach = [Reachability reachabilityWithHostname:@"www.google.com"];
reach.reachableBlock = ^(Reachability * reachability)
{
NSLog(@"Reachable");
};
reach.unreachableBlock = ^(Reachability * reachability)
{
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"No internet connection"
message:@"No internet connection"
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
NSLog(@"Not Reachable");
};
[reach startNotifier];
self.upcomingReleases = [[NSMutableArray alloc] init];
[self makeReleasesRequests];
self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; // Make nav items white
[self.collectionView registerClass:[ReleaseCell class] forCellWithReuseIdentifier:@"ReleaseCell"]; …Run Code Online (Sandbox Code Playgroud) reachability ×10
ios ×8
iphone ×5
objective-c ×5
afnetworking ×2
ios5 ×2
connectivity ×1
ipad ×1
networking ×1
swift3 ×1
uialertview ×1
xcode ×1
xcode4.3 ×1
xcode8 ×1