正确使用结构常量(使用动态值)。

我已经建立了这个结构。

struct Constants {
    static let BASE_URL = "http://\(CameraManager.ip)/Nexus.cgi?"
    static let WHOIAM_URL = "\(Constants.Url.BASE_URL)action=SERVERWhoAmI"
    static var SERVERPING_URL = "\(Constants.Url.BASE_URL)session=\(CameraManager.session)&action=SERVERPing"
}

其用法如下

    func refreshSession(success: @escaping () -> Void, failure: @escaping (String) -> Void) {
        self.manager.request(Constants.Url.WHOIAM_URL, method:.get).authenticate(usingCredential: self.utiles.getDigestCredential()).responseJSON { (responseObject) -> Void in

            if responseObject.result.isSuccess {
                let value = responseObject.result.value
                let json = JSON(value!)
                print(CameraManager.session)
                if self.parser.isError(json: json).0 {
                    failure(self.parser.isError(json: json).1)
                } else {
                    self.failedPingCounter = 0
                    CameraManager.session = self.parser.parseWhoAmICall(json: json)
                    success()
                }
            }
      }

   func keepAlive(session: String, success: @escaping () -> Void, failure: @escaping (String) -> Void) {

    self.manager.request(Constants.Url.SERVERPING_URL, method:.get).authenticate(usingCredential: self.utiles.getDigestCredential()).responseJSON { (responseObject) -> Void in


}

如你所见,我正在更新 CameraManager.session 值。更新后,我在 keepAlive但当我检查请求时,我可以看到它使用旧的……

怎样才能达到我想要的效果呢?

解决方案:

静态变量是 偷懒 这就是为什么即使你改变了你的 CameraManager.session 值。由于这些值是变化的,我不会把它们做成静态的,而只是把它们做成正常的计算变量。

给TA打赏
共{{data.count}}人
人已打赏
未分类

当在txt文件中插入文本时,会出现'错误'。

2022-9-8 21:49:41

未分类

对QTreeView进行排序的最简单方法

2022-9-8 22:00:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索