单例:用AFNetworking封装举例

 

创建单例的方式

1 import AFNetworking
2 
3 class NetworkTools: AFHTTPSessionManager {
4     
5     //let是线程安全的
6     //使用单例实例只需要拿到NetworkTools这个类取出来这个常量属性就可以拿到单例
7     static let shareInstance: NetworkTools = NetworkTools()
8 
9 }

 

具体使用方式

 1 import UIKit
 2 
 3 class ViewController: UIViewController {
 4 
 5     override func viewDidLoad() {
 6         super.viewDidLoad()
 7         //编译运行之后以下两个单例地址是一致的,
 8         print(NetworkTools.shareInstance)
 9         print(NetworkTools.shareInstance)
10     }
11 
12     override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
13         //运行编译之后以下两个单例地址是不一致的,使用单例必须取到常量属性,直接使用Networking则是又创建了一个实例
14         print(NetworkTools.shareInstance)
15         print(NetworkTools())
16     }
17 }

 

单例主要分两种:

1.通过shareInstance拿到的永远是一个实例

2.不管怎样,拿到都永远是一个实例

posted @ 2016-10-10 16:09  iGenius  阅读(901)  评论(0编辑  收藏  举报