小さな単一ペインのアプリで、コメントごとに異なる文字列配列を使用し、整数変数「userLang」でインデックスを付けてから、label.text = array [index]を設定して、さまざまな言語を管理しています。基本的なコードは次のとおりです。
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.
}
}
「ExpectedDeclaration」エラーが発生し続けます。テストとして(配列の代わりに)引用符で囲まれた単純な文字列を使用しようとしましたが、それでも同じエラーが発生します。 Webを検索しましたが、問題を解決する提案は見つかりませんでした。 「予約済み」の参照を使用している場合に備えて、ラベルの名前を変更してみました。
Appleの開発者マニュアルでSwift&ラベルの適切な構文が見つかりません。この構文は他のプロジェクトでも機能しているため、何が起こっているのかわかりません。copy/を試しました。関連するセクションを新しいプロジェクト(Xcodeバグの場合はオンライン提案の1つ)に貼り付けても、それ以上の結果は得られません。小さな違い(スペースまたは大文字)がSwiftに大きな違いをもたらす可能性があることに気づきました。ここで間違っていますか?何か提案はありますか?
msgArrayOne.text = arrayOne[userLang]
msgArrayTwo.text = arrayTwo[userLang]
これらは宣言ではありません。viewDidLoad()またはその他の適切な場所に移動する必要があります。ラベルの構文は問題ありませんが、クラスの間違った場所にコードがあります。