iOS开发——网络编程Swift篇&(一)网络监测
网络监测
 enum ReachabilityType {
     case WWAN,
     WiFi,
     NotConnected
 }
 public class Reachability {
     /**
     :see: Original post - http://www.chrisdanielson.com/2009/07/22/iphone-network-connectivity-test-example/
     */
     class func isConnectedToNetwork() -> Bool {
         var zeroAddress = sockaddr_in(sin_len: , sin_family: , sin_port: , sin_addr: in_addr(s_addr: ), sin_zero: (, , , , , , , ))
         zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
         zeroAddress.sin_family = sa_family_t(AF_INET)
         let defaultRouteReachability = withUnsafePointer(&zeroAddress) {
             SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($)).takeRetainedValue()
         }
         var flags: SCNetworkReachabilityFlags =
          {
             return false
         }
         let isReachable = (flags & UInt32(kSCNetworkFlagsReachable)) !=
         let needsConnection = (flags & UInt32(kSCNetworkFlagsConnectionRequired)) != 
         return (isReachable && !needsConnection) ? true : false
     }
     class func isConnectedToNetworkOfType() -> ReachabilityType {
         var zeroAddress = sockaddr_in(sin_len: , sin_family: , sin_port: , sin_addr: in_addr(s_addr: ), sin_zero: (, , , , , , , ))
         zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
         zeroAddress.sin_family = sa_family_t(AF_INET)
         let defaultRouteReachability = withUnsafePointer(&zeroAddress) {
             SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($)).takeRetainedValue()
         }
         var flags: SCNetworkReachabilityFlags =
          {
             return .NotConnected
         }
         let isReachable = (flags & UInt32(kSCNetworkFlagsReachable)) !=
         let isWWAN = (flags & UInt32(kSCNetworkReachabilityFlagsIsWWAN)) !=
         //let isWifI = (flags & UInt32(kSCNetworkReachabilityFlagsReachable)) != 0
         if(isReachable && isWWAN){
             return .WWAN
         }
         if(isReachable && !isWWAN){
             return .WiFi
         }
         return .NotConnected
         //let needsConnection = (flags & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
         //return (isReachable && !needsConnection) ? true : false
     }
使用:
     // MARK: - 检测网络连接情况
     @IBOutlet var statusLabel: UILabel!
     @IBOutlet var typeLabel: UILabel!
     @IBAction func checkButtonUpinside(sender: UIButton) {
         if Reachability.isConnectedToNetwork() {
             statusLabel.text = "网络连接:可用"
         } else {
             statusLabel.text = "网络连接:不可用"
         }
         let statusType = Reachability.isConnectedToNetworkOfType()
         switch statusType{
         case .WWAN:
             typeLabel.text = "连接类型:移动网络"
         case .WiFi:
             typeLabel.text = "连接类型:WiFi"
         case .NotConnected:
             typeLabel.text = "连接类型:没有网络连接"
         }
     }
iOS开发——网络编程Swift篇&(一)网络监测的更多相关文章
- iOS开发——图形编程Swift篇&CAShapeLayer实现圆形图片加载动画
		
CAShapeLayer实现圆形图片加载动画 几个星期之前,Michael Villar在Motion试验中创建一个非常有趣的加载动画. 下面的GIF图片展示这个加载动画,它将一个圆形进度指示器和圆形 ...
 - iOS开发——动画编程Swift篇&(五)CAKeyframeAnimation
		
CAKeyframeAnimation //CAKeyframeAnimation-关键针动画 @IBAction func cakFly() { let animation = CAKeyframe ...
 - iOS开发——动画编程Swift篇&(四)CABasicAnimation动画
		
CABasicAnimation动画 //CABasicAnimation-不透明度 @IBAction func cabOpacity() { let animation = CABasicAnim ...
 - iOS开发——动画编程Swift篇&(三)CATransition动画
		
CATransition动画 // MARK: - CATransition动画 // /* 动画样式 */ // let kCATransitionFade: NSString! //翻页 // l ...
 - iOS开发——动画编程Swift篇&(二)UIView转场动画
		
UIView转场动画 // MARK: - UIView动画-过度动画 var redView:UIView? var blueView:UIView? // enum UIViewAnimation ...
 - iOS开发——动画编程Swift篇&(一)UIView基本动画
		
UIView基本动画 // MARK: - UIView动画 ------------------------------------- // MARK: - UIView动画-淡入 @IBActio ...
 - iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用
		
swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...
 - iOS开发——新特性Swift篇&Swift 2.0 异常处理
		
Swift 2.0 异常处理 WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法.这篇文章会主要围绕这个方面进行讨论. 如何建造异常类型? 在 i ...
 - iOS开发——网络编程Swift篇&Alamofire详解
		
Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AF ...
 - iOS开发——网络编程Swift篇&(八)SwiftyJSON详解
		
SwiftyJSON详解 最近看了一些网络请求的例子,发现Swift在解析JSON数据时特别别扭,总是要写一大堆的downcast(as?)和可选(Optional),看?号都看花了.随后发现了这个库 ...
 
随机推荐
- Team them up!
			
题意: 给出n个人以及认识其他人的情况,现在要把所有人分成两队,每队至少一人,求使两队人数差距最小且每队内部的人都相互认识的分队情况. 分析: 这道题让我学习到了不少,首先看到使差距最小就想到了背包, ...
 - 使用 gradle 编译多版本 android 应用
			
最近要做一个 android 产品的变种版本,需要编出不同版本,每个版本有不同的包名.图标等等,和一些特有的逻辑. 很久之前做过类似的工作,当时没有 gradle, 用的方法是把公共代码抽成一个 li ...
 - CSS快速制作图片轮播的焦点
			
来源:http://www.ido321.com/858.html 效果图: 演示地址:http://jsfiddle.net/Web_Code/q5qfd8aL/embedded/result/ 代 ...
 - vi--文本编辑常用快捷键之复制-粘贴-替换-删除
			
这几天刚开始接触vi编辑器,慢慢开始熟悉vi,但是还是感觉诸多不便,比如说复制粘贴删除操作不能用鼠标总是感觉不自在,而且我一般习惯用方向键移动光标,更增加了操作的复杂度,今天在网上搜索了一下,vim编 ...
 - Android应用性能优化笔记(java代码优化)
			
Java代码优化 缓存结果: 如果计算代价过高,最好把过去的结果缓存起来. 伪代码如下: result=cache.get(n); //输入参数n作为键 if(result==nul ...
 - redis.conf的配置
			
daemonize yes : redis server 实例是否以后台方式运行 , no:不以后台方式运行(默认) , yes:以后台方式运行. requirepass 密码 : 密码最好长 ...
 - MySQL 主从架构配置详解
			
无论是哪一种数据库,数据的安全都是至关重要的,因此熟练掌握数据库的安全备份功能,是作为开发人员,特别是后端开发人员的一项必备技能.MySQL 数据库内建的复制功能,可以帮助我们对数据进行异地备份,读写 ...
 - 我的github
			
我的github:先来贴个图~ 这是我的github,新建了第一个repository,默认路径是aokoqingiz/code. 然后是里面的文件~ 里面有一个readme.txt,是我对这个r ...
 - 链表逆序(JAVA实现)
			
题目:将一个有链表头的单向单链表逆序 分析: 链表为空或只有一个元素直接返回: 设置两个前后相邻的指针p,q,使得p指向的节点为q指向的节点的后继: 重复步骤2,直到q为空: 调整链表头和链表尾: 图 ...
 - 关于Js脚本的延迟执行
			
关于标签,我们有一般会放在两个地方,一个是在标签的内部,另一个是放在前面.这一次我们着重讲解一下放在标签内部.在我们用Js操作DOM元素时,如果不延时执行,DOM元素其实是根本还没有被渲染出来的. ...