web-dev-qa-db-ja.com

Swift:「Label」を文字列変数に設定する際に予期される宣言エラー

小さな単一ペインのアプリで、コメントごとに異なる文字列配列を使用し、整数変数「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に大きな違いをもたらす可能性があることに気づきました。ここで間違っていますか?何か提案はありますか?

8
Rob
msgArrayOne.text = arrayOne[userLang]  
msgArrayTwo.text = arrayTwo[userLang]

これらは宣言ではありません。viewDidLoad()またはその他の適切な場所に移動する必要があります。ラベルの構文は問題ありませんが、クラスの間違った場所にコードがあります。

22
MirekE