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.