swift - 向 Alamofire 添加完成处理程序

标签 swift alamofire

我正在编写一小段 Swift 代码,用于通过基于网络的 API 提取数据。现在我很接近,但是当我在 getUserInfo() 预期数据中打印数据时,我认为我缺少完成处理程序方面,但在该函数之外,出现初始化的默认数据。该函数是这样调用的:

print("Provided Username is: \(workingData.user)")
getUserInfo()
print("Returned String Data is: \(workingData.responseDataString)")

和实际功能:

func getUserInfo() {
    Alamofire.request(workingjss.jssURL + devAPIMatchPath + workingData.user, method: .get)
        .authenticate(user: workingjss.jssUsername, password: workingjss.jssPassword).responseString { response in
            if (response.result.isSuccess) {
                print("In Function Data: \(response.result.value!)"
                workingData.responseDataString = response.result.value!
            }
    }
}

运行代码的输出是:

Provided Username is: MYUSER
Returned String Data is: Nothing Here Yet 
In Function Data: {"Cleaned JSON Data here"}

完成处理程序会帮助解决问题吗?我对使用 Alamofire 很陌生,如果这很简单,我很抱歉。谢谢!

最佳答案

尝试使用完成处理程序:

func getUserInfo(completion: @escaping (String) -> Void) {
    Alamofire.request(workingjss.jssURL + devAPIMatchPath + workingData.user, method: .get)
        .authenticate(user: workingjss.jssUsername, password: workingjss.jssPassword).responseString { response in
            if (response.result.isSuccess) {
                print("In Function Data: \(response.result.value!)"
                completion(response.result.value!)
            }
    }
}

然后这样调用它:

getUserInfo() { response in
    // Do your stuff here
    workingData.responseDataString = response
    print("Returned String Data is: \(workingData.responseDataString)")
}

关于swift - 向 Alamofire 添加完成处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42756215/

相关文章:

ios - Alamofire laravel 中字符 0 周围的无效值

ios - 将自定义类存储在 UserDefaults 中

swift - 使用 Alamofire 的多部分 POST

swift - 素数 Swift 3

swift - 在通用类型数据中使用时是否会转义闭包?

swift - 我可以直接在 mustache 模板中使用本地化吗?

swift - XCode 12 : 'SessionDelegate' has different definitions in different modules

swift - 在 Alamofire 中上传多张图片

ios - 未在 UILabel-Swift 中设置 UIFont

ios - 以编程方式在具有约束的按钮上添加图像 (Swift)