ios - custom - Loop dentro de Swift Eureka Form
swift forms (2)
El <<< es un operador binario, que espera dos operandos ( lhs <<< rhs ), mientras que en su ejemplo anterior, solo le proporciona uno ( <<< operand ).
No es posible "canalizar" cada pasada de un bucle for , como si cada pase fuera un rhs para usar con un operando lhs fuera del alcance del bucle (con lhs para el primer pase siendo el resultado de la form +++ Section(...) de form +++ Section(...) ). Sin embargo, podría hacer uso de reduce para lograr dicha funcionalidad. Ahora, no he probado esto con formularios Eureka (sin embargo, en estructuras ficticias y operadores), pero debería parecerse a lo siguiente: (basado en las funciones de operador +++ y <<< declaradas en Eureka / Source / Core / Operadores.swift )
form
+++ itemNames.reduce(Section("Select item values")) { (section, itemName) in
section
<<< StepperRow() {
$0.tag = itemName
$0.title = itemName
$0.value = 0
}
}
Estoy construyendo un formulario de Eureka y me gustaría poner un círculo dentro del formulario para crear una lista de steppers basados en una matriz.
El código que trato de usar es:
let itemNames = ["one","two","three"]
// Eureka From Set-up
form
+++ Section("Select item values")
for itemName in itemNames{
<<< StepperRow() {
$0.tag = itemName
$0.title = itemName
$0.value = 0
}
}
Sin embargo, cuando hago esto, aparece un error en la línea StepperRow que dice:
Unary operator cannot be separated from its operand
Por lo tanto, parece que Swift ya no piensa que está dentro del formulario y está viendo el <symbol como menos que, en lugar de la declaración de la fila.
¿Alguna idea sobre cómo solucionar esto?
Respuesta alternativa:
let itemNames = ["one","two","three"]
// Eureka From Set-up
form
+++ Section("Select item values")
for itemName in itemNames{
form.last
<<< StepperRow() {
$0.tag = itemName
$0.title = itemName
$0.value = 0
}
}
Solo tiene que agregar "form.last" dentro del for.loop.