• 单例:用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.不管怎样,拿到都永远是一个实例

  • 相关阅读:
    leetcode-剑指19-OK
    leetcode-剑指38-?
    leetcode-剑指36-OK
    leetcode-剑指41-OK
    leetcode-剑指20-OK
    leetcode-剑指16-OK
    nginx重写路由隐藏入口文件报错引发的思考
    Go之并发
    Go之接口
    Go实现学生管理系统
  • 原文地址:https://www.cnblogs.com/igeniuswwh/p/5946220.html
Copyright © 2020-2023  润新知