#swift #alamofire
#swift #alamofire
Вопрос:
В моем приложении есть 2 кнопки, я хочу, чтобы 1 кнопка «ПОЛУЧАЛА» данные, а затем еще одна, чтобы «ПОМЕЩАТЬ» данные с некоторой измененной информацией, которую я добавил. Как бы я поступил по этому поводу? Мне в основном нужно получить доступ к уже «полученным» данным во второй кнопке, но я действительно должен понять, как это сделать.
Приведенный ниже код не является полным кодом, я удалил большую часть, чтобы его было легче читать. Он содержит функцию «получить», не знаю, куда идти дальше.
Спасибо, что проверили это, просто ищу кого-то, кто укажет мне правильное направление.
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")
}
}
}
}
Комментарии:
1. Ваша
let api
локальная переменная внутри функции. Итак, вы декодируете свой основной объект, а затем выбрасываете его.2. @matt Спасибо за ввод, но я не совсем понимаю, что вы имеете в виду, как я смогу использовать
let api
внешнюю функцию, не вызывая ее снова?