Zarządzam różnymi językami, w małej aplikacji z pojedynczą szybą, przy użyciu różnych tablic ciągów dla każdego komentarza, indeksowanych przez zmienną całkowitą "userLang", a następnie ustawiania etykiety .text = array [indeks]. Podstawowy kod to:Swift: oczekiwany błąd deklaracji ustawienie "Etykieta" zmiennej łańcuchowej
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.
}
}
Występuje błąd "Oczekiwana deklaracja". Próbowałem używać prosty ciąg w cudzysłowach (zamiast tablicy) jako test, i nadal otrzymuję ten sam błąd. Przeszukałem sieć & nie znaleziono żadnych sugestii, które rozwiązałyby problem. Próbowałem zmienić nazwę, jeśli etykieta, na wypadek, gdy używałem referencji "zarezerwowanych".
Szukałem instrukcji programisty Apple'a dla Swift &, nie mogę znaleźć właściwej składni dla etykiet. Ta składnia działała w innych projektach, więc nie jestem pewien, co się dzieje. Próbowałem nawet skopiować/wkleić odpowiednie sekcje do nowego projektu (jedna z sugestii online, w przypadku błędu Xcode), bez lepszych rezultatów. Zauważyłem, że niewielkie różnice (przestrzeń lub kapitał) mogą sprawić dużą różnicę w Swift. Czy jest tu coś, co robię źle? Jakieś sugestie?
Dziękujemy! To, co mówisz, ma sens intuicyjny. Ustawienie pól etykiety to przypisania, a nie deklaracje i muszą być częścią akcji/funkcji. Tymczasowo dodałem przycisk, przeciągnąłem go do kodu jako akcję, umieściłem wszystkie przypisane etykiety wewnątrz niego, a błąd zniknął - kod kompiluje się pomyślnie. W końcu wstawię go do widoku próbnika, ale wciąż uczę się składni tego (nieco bardziej skomplikowanego). – Rob