Sto gestendo lingue diverse, in una piccola applicazione a riquadro singolo, utilizzando un diverso array di stringhe per ogni commento, indicizzato da una variabile intera "userLang", quindi impostando l'etichetta .text = array [indice]. Il codice di base è:Swift: errore di dichiarazione atteso impostazione "Etichetta" su una variabile stringa
import UIKit
class ViewController: UIViewController {
var userLang = 0
var arrayOne = ["hi", "hola"]
var arrayTwo = ["Bye", "Adios"]
@IBOutlet weak var msgArrayOne: UILabel!
@IBOutlet weak var msgArrayTwo: UILabel!
msgArrayOne.text = arrayOne[userLang] //Error here: !Expected declaration
msgArrayTwo.text = arrayTwo[userLang] //odd, but this line gets no error until I
//remove the first line above, then
//this line gets the same error.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Continuo a ricevere un errore "Dichiarazione previsto". Ho provato a utilizzare una semplice stringa tra virgolette (anziché l'array) come test e ottenere ancora lo stesso errore. Ho cercato sul web & non trovato alcun suggerimento che risolva il problema. Ho provato a cambiare il nome se l'etichetta, nel caso in cui stavo usando riferimenti "riservati".
Ho cercato il manuale dello sviluppatore di Apple per Swift & Impossibile trovare la sintassi corretta per le etichette. Questa sintassi ha funzionato in altri progetti, quindi non sono sicuro di cosa sta succedendo. Ho anche provato a copiare/incollare le sezioni rilevanti in un nuovo progetto (uno dei suggerimenti online, in caso di bug Xcode), senza risultati migliori. Ho notato che piccole differenze (uno spazio o un capitale) possono fare una grande differenza in Swift. C'è qualcosa che sto facendo di sbagliato qui? Eventuali suggerimenti?
Grazie! Quello che dici ha un senso intuitivo. L'impostazione dei campi dell'etichetta sono assegnazioni, non dichiarazioni e devono essere parte di un'azione/funzione. Temporaneamente, ho aggiunto un pulsante, l'ho trascinato nel codice come azione, ho inserito tutte le assegnazioni di etichetta al suo interno e l'errore è scomparso: il codice viene compilato correttamente. Alla fine, lo inserirò in una vista di selezione, ma sto ancora imparando la sintassi per quello (un po 'più complicato). – Rob