创建单例的方式
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.不管怎样,拿到都永远是一个实例