gpt4 book ai didi

ios - 如何快速设置一个具有 Alamofire 调用值的类变量?

转载 作者:行者123 更新时间:2023-11-30 13:18:38 24 4
gpt4 key购买 nike

我是 iOS 开发新手,我有一个用于从服务器检索数据的类。我想将 Alamofire 请求中的值存储为类变量,以便与后续请求一起使用。我知道 Alamofire 请求具有完成处理程序,但我仍然不太清楚它们是如何工作的。

setSessionID中,我想将generateNewSessionID中的字符串存储到sessionID中。这显然不是执行此操作的正确方法,因为我在 print 语句中收到未包装的 nil 可选错误。

import Alamofire
import Foundation

class DataRetriever {
private var sessionID: String?
private let baseUrl: String?
private let endPoints = ["session": "/session", "population": "/population/"]

init() {
let dict = NSDictionary(contentsOfFile: NSBundle.mainBundle().pathForResource("Config", ofType: "plist")!)
baseUrl = dict!["baseUrl"] as? String
setSessionID()
}

private func generateNewSessionID(completionHandler: (NSError?, String?) -> ()) {
let params = [ "stuff": "stuff", "morestuff": "moreStuff" ]

Alamofire.request(.POST, baseUrl! + endPoints["session"]!, parameters: params, encoding:ParameterEncoding.URL, headers: getSessionHeaders()).responseJSON { response in
switch response.result{
case .Success:
completionHandler(nil, String(response.response!))
case .Failure(let error):
completionHandler(error, nil)
}
}
}

func setSessionID() {
generateNewSessionID() { (error, session) in
if error != nil {
// handle error
} else {
self.sessionID = session
}
}

print(self.sessionID!)
}
}

我已经查看了其他示例,但我不知道如何在我的类(class)范围内做到这一点。

最佳答案

在你的setSessionID中,如果你检查if error != nil,这意味着如果有错误处理它,所以你应该像这样改变它

if error == nil {
// No error
self.sessionID = session
} else {
//handle Error
}

关于ios - 如何快速设置一个具有 Alamofire 调用值的类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37982546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com