iphone网络编程总结一
来源:互联网 发布:2017淘宝儿童模特招聘 编辑:程序博客网 时间:2024/06/07 09:33
一、确认网络环境3G/WiFi
1). 要在应用程序中使用Reachability,首先要完成以下两步骤:
1.1 添加源文件:将Reachability.h和Reachability.m拷贝到你工程中。
1.2 添加必要框架:将SystemConfiguration.framework添加到工程项目中。
2). 检查网络状态
Reachability *r = [Reachability reachabilityWithHostName:@"www.apple.com"];
switch([r currentReachabilityStatus]) {
case NotReachable:
//没有网络连接
break;
case ReachableViaWWAN:
//使用3G网络
break;
case ReachableViaWiFi:
//使用WiFi网络
break;
}
3). 检查当前网络环境
程序启动时,如果想检测可用的网络环境,可以这样:
// 是否WiFi
+ (BOOL) IsEnableWIFI {
return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);
}
// 是否3G
+ (BOOL) IsEnable3G {
return ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable);
}
- (void)viewWillAppear:(BOOL)animated {
if(([Reachability reachabilityForInternetConnection].currentReachabilityStatus == NotReachable) && ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus == NotReachable)) {
self.navigationItem.hidesBackButton = YES;
[self.navigationItem setLeftBarButtonItem:nil animated:NO];
}
}
4). 链接状态的实时通知
网络连接状态的实时检查,通知在网络应用中也是十分必要的。接续状态发生变化时,需要及时地通知用户。
Reachability 1.5版本
// My.AppDelegate.h
#import "Reachability.h"
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
NetworkStatus remoteHostStatus;
}
@property NetworkStatus remoteHostStatus;
@end
// My.AppDelegate.m
@import "MyAppDelegate.h"
@implementation MyAppDelegate
@synthesize remoteHostStatus;
// 更新网络状态
- (void)updateStatus {
self.remoteHostStatus = [[Reachability sharedReachability] remoteHostStatus];
}
// 通知网络状态
- (void)reachabilityChanged : (NSNotification *)note {
[self updateStatus];
if (self.remoteHostStatus == NotReachable) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"AppName",nil)
message:NSLocalizedStrng(@"NotReachable",nil)
delegate:nil
cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
}
}
// 程序启动器,启动网络监视
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// 设置网络检测的站点
[[Reachability sharedReachability] setHostName:@"www.apple.com"];
[[Reachability sharedReachability] setNetworkStatusNotificationsEnabled:YES];
// 设置网络状态变化时的通知函数
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:@"kNetworkReachabilityChangedNotification" object:nil];
[self updateStatus];
}
- (void)dealloc {
//删除通知对象
[[NSNotificationCenter defaultCenter] removeObserver:self];
[window release];
[super dealloc];
}
Reachability 2.0版本
// MyAppDelegate.h
@class Reachability;
@interface MyAppDelegate:NSObject<UIApplicationDelegate> {
Reachability *hostReach;
}
@end
// MyAppDelegate.m
- (void)reachabilityChanged: (NSNotification *)note {
Reachability *curReach = [note object];
NSParameterAssert([curReach isKindOfClass:[Reachability class]]);
NetworkStatus status = [curReach currentReachabilityStatus];
if (status == NotReachable) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"AppName"
message:@"NotReachable"
delegate:nil
cancelButtonTitle:@"YES" otherButtonTitles:nil];
[alert show];
[alert release];
}
}
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// 监测网络情况
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reachabilityChanged:)
name:kReachabilityChangedNotification
object:nil];
hostReach = [[Reachability reachabilityWithHostName:@"www.google.com"] retain];
[hostReach startNotifer];
//.....
}
- iphone网络编程总结一
- iphone网络编程总结
- iphone网络编程总结
- iphone 网络编程总结
- 网络编程总结 iphone
- Java 网络编程(总结一)
- 网络编程总结(一)
- 网络编程总结(一)
- 【iPhone】网络编程–一起来做网站客户端(一)
- 【iPhone】网络编程–一起来做网站客户端(一)
- iPhone网络编程–一起来做网站客户端(一)
- iphone网络编程
- iphone 网络编程
- iphone 网络编程
- iPhone网络编程
- iphone网络编程小结
- 【iPhone】网络编程
- Windows网络编程总结(一)
- script语法错误
- 数据结构之迷宫
- 使用NSOperation和NSOperationQueue启动多线程开发应用
- 一位老电子工程师十年的职场感悟
- 链表 逆序 例子
- iphone网络编程总结一
- Begin iPhone3 development
- 2012 3 16
- 如何让字符串排序某几项显示在最前面
- 直连线和交叉线制作区别及使用方式
- UITextView控件的用法详解
- jquery ligerUI中的single是指什么
- 北航1000(A+B)
- iphone开发中九宫格的界面布局的实现