2017-12-21 21 views
2

変数がある場合はいつでもこのエラーが発生しています。例えば、ここで私はcpuStringを入れて、私はそれを呼び出したときに、これを引き起こしていただきました!私はエラー Xcodeには、変数が入っていると「期待される宣言」エラーが表示されます

import UIKit 

class ViewController: UIViewController { 
    @IBOutlet weak var cpuLabel: UILabel! 
    @IBOutlet weak var coolerLabel: UILabel! 
    @IBOutlet weak var moBoLabel: UILabel! 
    @IBOutlet weak var ramLabel: UILabel! 
    @IBOutlet weak var gpuLabel: UILabel! 
    @IBOutlet weak var psuLabel: UILabel! 
    @IBOutlet weak var caseLabel: UILabel! 

    var cpuString = "" 

    cpuSting = "Intel i5" // Here is where I got the Expected declaration 
} 

ないアイデア

を得ました。面白いのは、Xcodeはすべてを無視しているということです。私がラベルで何かをしようとすると、それはそこにもないようです。私が入力を開始し、それに入れるものの自動完成提案は、私の変数や他の何もリストされていません。

+0

変数を宣言して初期値を割り当てることができます - 'var cpuSting =" Intel i5 "'しかし、 'cpuSting =" Intel i5 "というような任意のコードを使うことはできません。 '関数の外側にある。 – Paulw11

+0

キャッシュをクリーニングしてプロジェクトをクリーンアップしてビルドを再試行しましたか? Xcodeに何もエラーが表示されない場合があります。クリーニングとビルドが成功した場合はもう一度リストから別のクラスを選択し、エラーが表示されるViewControllerを開きます。 –

答えて

3

あなたが宣言にするか、有効な範囲の中にいずれかのその割り当てを移動する必要があります。

1:

var cpuSting = "Intel i5" 

2:

override func viewDidLoad() { 
    super.viewDidLoad() 
    cpuSting = "Intel i5" 
} 

本質的にしようとしているあなたは、あなたのコード内で行います不適切な場所に課題を付ける。変数を宣言する場合は、必要な初期値で宣言してください。値を再割り当てする場合は、viewDidLoadなどのインスタンスメソッドのスコープなど、適切な場所で値を割り当てます。

+0

Paulw11、ありがとうございました。 :) – Hexfire

+0

うまくいくようです。私は速くて新しく、私はいつもViewDidLoadをView Controllerの一番下に置いていました。以前はうまくいきましたが、ViewDidLoadに物を入れなければならないのはなぜですか? –

+0

わかっていればわかりません... Swiftでは宣言段階で必要な初期値を設定できます。 Objective-Cでは、開発者は 'viewDidLoad'や' init'のような場所での初期割り当てを強制されましたが、これはもはやSwiftの場合ではありません。ですから、あなたは 'viewDidLoad'にそれを置く必要はありません。二次的な(結果的な)割り当てを行う必要がある場合は、それだけです。初期化のために、 'var cpuSting =" Intel i5 "'で十分です。 – Hexfire

関連する問題