2016-10-07 8 views
-2

Nibファイル内のすべてのビューを取得するにはどうすればよいですか? 私はNib内のすべてのビューを取得しようとしている:私はこのエラーを取得していますがタイプ 'UIView'の値を 'NSArray'にキャストできません

let objects = Bundle.main.loadNibNamed("ViewName", owner: self, options: nil)?[0] as! NSArray 
    let mainView : UIView = objects[0] as! UIView 

:あなたの助けを事前に

Could not cast value of type 'UIView' (0x108080b40) to 'NSArray' (0x105173c58).

感謝を。それは[0]を使用してタイプ[Any]?とあなたのアールの添字の

+0

なぜこれが投票されたのですか?私はそれを改善することができるようにコメントを残す。 –

答えて

1

loadNibNamed返す配列は、あなたが配列の最初のオブジェクトにアクセスしていることを意味します。したがって、[0]を削除してください。

let objects = Bundle.main.loadNibNamed("ViewName", owner: self, options: nil) 

第2のオプションでは、直接UIViewオブジェクトを初期化できます。

if let mainView : UIView = Bundle.main.loadNibNamed("ViewName", owner: self, options: nil)?[0] as? UIView {...} 

エラーを解決するソリューションを選択します。

+0

こんにちは私は両方のNirav Dとビュー内のすべてのラベルがデータで表示されていないしようとしました。また、最初のオプションについて警告が表示されます。キャスト '[任意]からですか?'無関係な型 'NSArray'は常に失敗します。 - あなたは両方の必要がありますか!第2の選択肢では、 Xcodeでエラーが発生したため、編集を試みました。 –

+0

ラベルにアクセスすることができません。なぜなら 'UIView'にキャストする必要があります。あなたの' customView'でキャストする必要があります。最初のオプションを編集しました。nsarrayに '[Any]? 'をキャストする必要はありません。 –

+0

@GerardGrundyそれは今動作していますか? –

関連する問題