Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

219
Vistas
Índice fuera de rango swiftui?

tengo esta fundación de importación de estructura

 import Foundation // MARK: - Welcome struct Say: Codable { let response: [Rest] init(response: [Rest]) { self.response = response } } // MARK: - Response struct Rest: Codable { let eventID: String let data: ClassMe enum CodingKeys: String, CodingKey { case eventID = "event_id" case data } init(eventID: String, data: ClassMe) { self.eventID = eventID self.data = data } } // MARK: - DataClass struct ClassMe: Codable { let toTime, to, addInfo, maxWeight: String let freeSpace, type, fromTime: String let blocked: Blocked let fromDate: String let index: Int let toDate, cost, from: String let isDeleted: Bool let userID: String enum CodingKeys: String, CodingKey { case toTime, to, addInfo, maxWeight, freeSpace, type, blocked, fromTime, fromDate, index case toDate = "ToDate" case cost, from case isDeleted = "is_deleted" case userID = "userId" } init(toTime: String, to: String, addInfo: String, maxWeight: String, freeSpace: String, type: String, blocked: Blocked, fromTime: String, fromDate: String, index: Int, toDate: String, cost: String, from: String, isDeleted: Bool, userID: String) { self.toTime = toTime self.to= to self.addInfo = addInfo self.maxWeight = maxWeight self.freeSpace = freeSpace self.type = type self.blocked = blocked self.fromTime = fromTime self.fromDate = fromDate self.index = index self.toDate = toDate self.cost = cost self.from = from self.isDeleted = isDeleted self.userID = userID } } enum Blocked: Codable { case anythingArray([JSONAny]) case string(String) init(from decoder: Decoder) throws { let container = try decoder.singleValueContainer() if let x = try? container.decode([JSONAny].self) { self = .anythingArray(x) return } if let x = try? container.decode(String.self) { self = .string(x) eturn } throw DecodingError.typeMismatch(Blocked.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for Blocked")) } func encode(to encoder: Encoder) throws { var container = encoder.singleValueContainer() switch self { case .anythingArray(let x): try container.encode(x) case .string(let x): try container.encode(x) } } }

y si quiero guardar en el núcleo dentro de una solicitud http, no puedo por mí

 func httpfetchEventFly(){ // declare the parameter as a dictionary that contains string as key and value combination. considering inputs are valid let dateFormatter = DateFormatter() let t: [Int] = Array(0...100) // var i: Int = 0 @State var i = 0 let parameters:Dictionary<String, Any> = [ "data" : [ "date":"07-03-2022", "type":"airplane" ] ] // create the url with URL let url = URL(string: "myURL")! // change server url accordingly // create the session object let session = URLSession.shared // now create the URLRequest object using the url object var request = URLRequest(url: url) request.httpMethod = "POST" //set http method as POST request.httpBody = parameters.percentEncoded() // add headers for the request request.addValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") // change as per server requirements request.addValue("application/json; charset=utf-8", forHTTPHeaderField: "Accept") do { // convert parameters to Data and assign dictionary to httpBody of request request.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted) } catch let error { print(error.localizedDescription) return } // create dataTask using the session object to send data to the server let task = session.dataTask(with: request) { data, response, error in if let error = error { print("Post Request Error: \(error.localizedDescription)") return } // ensure there is valid response code returned from this HTTP response guard let httpResponse = response as? HTTPURLResponse, (200...299).contains(httpResponse.statusCode) else { print("Invalid Response received from the server") return } // ensure there is data returned guard let responseData = data else { print("nil Data received from the server") return } do { // create json object from data or use JSONDecoder to convert to Model stuct if let jsonResponse = try JSONSerialization.jsonObject(with: responseData, options: .mutableContainers) as? Dictionary<String,Any>{ print(jsonResponse) let decoder = JSONDecoder() do { let loginResponse = try decoder.decode(Say.self, from: responseData) for i in t.prefix(120) { ← ((((that doesn't work i want a solution for the index i)))) print("fromdate:", loginResponse.response[i].data.fromDate) let peerfly = Peerfly(context: self.persistentContainer.viewContext) //peertraffic.fromDate = dateFormatter.date(from: loginResponse.response[i].data.fromDate) peerfly.fromDate = loginResponse.response[i].data.fromDate peerfly.toDate = loginResponse.response[i].data.toDate peerfly.freeSpace = loginResponse.response[i].data.freeSpace peerfly.from = loginResponse.response[i].data.from peerfly.to = loginResponse.response[i].data.to peerfly.fromTime = loginResponse.response[i].data.fromTime peerfly.toTime = loginResponse.response[i].data.fromTime peerfly.cost = loginResponse.response[i].data.cost peerfly.maxWeight = loginResponse.response[i].data.maxWeight peerfly.addInfo = loginResponse.response[i].data.addInfo peerfly.eventID = loginResponse.response[i].eventID } do { try self.persistentContainer.viewContext.save() } catch { print("Failed to save event \(error)") } DispatchQueue.main.async { self.events = loginResponse } } catch { print(error) } // handle json response } else { print("data maybe corrupted or in wrong format") throw URLError(.badServerResponse) } } catch let error { print(error.localizedDescription) } } // perform the task task.resume() } } }

quiero que un índice se repita, pero cuando alcanza un valor nulo, no produce un error fatal y está fuera de rango, solo quiero tomar el índice que tiene datos, que es la matriz de respuesta, y si es nulo, no hace nada (tampoco imprime o arroja un error fatal), pero no puede hacerlo

sabiendo que usé persistente porque estoy almacenando en datos centrales

Muchas gracias mis amigos

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda