2017-05-16 4 views
-1

私はUIAlertポップアップを作成しようとしていますが、コードがそれを行うべき関数を呼び出すときには、プロセス内で全く無関係な値が、値を持つと予想されるときにnilを返したというエラーを引き起こしました。私はこの問題を解決しましたが、私のソリューションがなぜ機能するのか分かりません。UIAlertはなぜ私の他の変数の1つをゼロにするのでしょうか?

元:

var fullFreqHeard: [Double] = [] 

@IBOutlet weak var fullFreqLabel: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    fullFreqLabel.text = "\(fullFreqHeard)" 
} 

ソリューション:溶液中で私が使用したのに対し、

var fullFreqHeard: [Double] = [] 

@IBOutlet weak var fullFreqLabel: UILabel? 

override func viewDidLoad() { 
    super.viewDidLoad() 
    fullFreqLabel?.text = "\(fullFreqHeard)" 
} 

違いは、元I力であるが、ラベルをアンラップ 'か'。ここで何が起こっているのですか?私はそれが警戒に関係するかもしれないかどうかも疑問に思っていた。

+0

実際にラベルを表示していますか?正しく接続されていない可能性があります。 –

+0

さて、私はラベルを参照 –

答えて

0

私はアラートとは関係ないと思います。 force unwrappingがエラーを修正する理由は、fullFreqLabelが最初はnilであるためです。値を設定する前に初期化する必要があります。たとえば、var fullFreqLabel = UILabel(frame: CGRect.zero)

+0

私はストーリーボードを使用し、私はそのラベルをストーリーボードに入れました。それはそれをゼロにしないだろうか? –

関連する問題