[英]How to save JSONdata from API-call(GET) to later use for an API-request(PUT)?
這就是我想要完成的:
我不知道實現這一目標的最佳方法是什么,我迷路了! 我可以以某種方式從 function 中返回變量“參數” ,以便我可以修改它並與另一個 function 一起發送嗎?
下面的代碼不是完整的代碼,我刪除了很大一部分以使其更易於閱讀。 它包含一個“獲取”function,不知道從哪里到 go。
感謝您檢查它,只是想找人指出我正確的方向。
import UIKit
import AVFoundation
import QRCodeReader
import Alamofire
// MARK: - Main
struct Main: Codable {
let objects: [Object]
}
// MARK: - Object
struct Object: Codable {
let inventory: [Inventory]
}
// MARK: - Inventory
struct Inventory: Codable {
let coordinates: String
}
func test() {
// MARK: - LOGIN DETAILS
let headers: HTTPHeaders = [
.authorization(username: "username", password: "password"),
.accept("application/json")]
// MARK: - API REQUEST
AF.request("URL LINK", headers: headers).validate().responseJSON { response in
// MARK: - CHECK FOR ERRORS
if let error = response.error {
print(error)
// MARK: - ERROR MESSAGE
DispatchQueue.main.async
{ let alert = UIAlertController(title: "ERROR", message: "Something went wrong", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alert, animated: true)}
return}
// MARK: - PRINT RESPONSE
if response.response != nil
{print (response.response!) }
// MARK: - PRINT DATA
if response.data != nil
{ print(response.data!)
let decoder = JSONDecoder()
do
{
let api = try decoder.decode(Main.self, from: response.data!)
let parameters = [
"meta": [
"language": "en"
],
"request": [
"inventory": [
[
"id": 6534206,
"warehouseid": 1,
"instock": 3,
"threshold": 0,
"reserved": 0,
"coordinates": "\(api.objects[0].inventory[0].coordinates)",
"note": "",
"prodno": 25669,
"soldout": 0
]
]
]
]
}
catch {
print("Error in JSON parsing")
}
}
}
}
您可以使用閉包從 function 中返回值。 這種做法是函數式編程,幾乎用於異步 function。
func test(completion: ([String: AnyObject]) -> ()) {
...
let param = [“meta”: [“language”: “en”],...]
completion(param)
}
然后,使用它:
test(completion: { param in
// handle the “param”
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.