Firebase で Locations のリストを作成しました。それを iOS アプリケーションで読み込んで PickerView として表示しようとしています。
以下は、データの読み取り方法です。
ref.child("locations").observeSingleEventOfType(.Value, withBlock: { snapshot in
self.listOfLocations = snapshot.value as! [String]
})
PickerView のコード
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return listOfLocations.count;
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return listOfLocations[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
selectedLocation = listOfLocations[row]
}
ただし、プログラムがスナップショット行で実行を停止するというエラーが発生します。
問題は、読み取られたデータが AnyObject 型であり、 PickerView で String が必要であることです。[AnyObject] を [String] に型キャストしてもうまくいきません。
これを解決するのに役立ちます。