es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se inicializa una matriz con un subcadena de una cadena en SwiftUI 5.5?

He escrito datos de ejemplo para mi vista y se ve/funciona bien, pero ahora quiero reemplazar mis datos de ejemplo con datos reales. He pasado con éxito dos cadenas. Estoy tratando de substring y reemplazar los elementos wDD y wRead del array NamedWeek con los datos reales. ¿Alguien puede ayudarme a hacer eso?

mis cadenas entrantes se ven así para wDD:

let string1 = “21|22|23|24|25|26|27”

para wRead:

let string2 = “Dan 9| Rev 14 | Eze 38 | Matt 24 | Joel 2 | Gen 3 | Jer 18”

struct NamedWeek: Identifiable {
   let wDay: String
   var wDD: String
   var wRead: String
   var id: String { wDay }
}

var namedWeeks: [NamedWeek] = [
   NamedWeek(wDay: "Sun", wDD: "15", wRead: "Leviticus 26"),
   NamedWeek(wDay: "Mon", wDD: "16", wRead: "Psalm 45"),
   NamedWeek(wDay: "Tue", wDD: "17", wRead: "Test 3"),
   NamedWeek(wDay: "Wed", wDD: "18", wRead: "Test 4"),
   NamedWeek(wDay: "The", wDD: "19", wRead: "Test 5"),
   NamedWeek(wDay: "Fri", wDD: "20", wRead: "Test 6"),
   NamedWeek(wDay: "Sat", wDD: "21", wRead: "Test 7")
]

Estaba intentando hacer algo como

var token = string1.components(separatedBy: “|”)

y luego reemplazar wDD con token[0] y luego token[1] o si pudiera insertar una función (no sé si eso es posible) Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para remplazar los elementos wDD y wRead del array NamedWeek con los datos reales de las cadenas entrantes, puedes usar un bucle para iterar a través del array namedWeeks y remplazar los elementos correspondientes con los valores de la subcadena.

    Aquí tienes un ejemplo de código que demuestra cómo puedes lograr esto:

    let string1 = "21|22|23|24|25|26|27"
    let string2 = "Dan 9|Rev 14|Eze 38|Matt 24|Joel 2|Gen 3|Jer 18"
    
    // Divide las cadenas entrantes en componentes separados
    let wDDComponents = string1.components(separatedBy: "|")
    let wReadComponents = string2.components(separatedBy: "|")
    
    // Itera a través del array NamedWeek y remplaza los elementos wDD y wRead con los datos reales
    for (index, namedWeek) in namedWeeks.enumerated() {
       namedWeeks[index].wDD = wDDComponents[index % wDDComponents.count] // usa el operador módulo para repetir los componentes si es necesario
       namedWeeks[index].wRead = wReadComponents[index % wReadComponents.count] // usa el operador módulo para repetir los componentes si es necesario
    }
    

    Este código divide las cadenas entrantes en componentes separados usando el método components(separatedBy:). Luego usa un bucle para iterar a través del array namedWeeks y remplazar los elementos wDD y wRead con los componentes correspondientes de las cadenas entrantes.

    Nota que se usa el operador módulo % para repetir los componentes si hay más elementos en el array namedWeeks que en las cadenas entrantes.

Comments are closed.