0
コントローラにファイアベースを取り付けることができません。 Firebaseは、私がコンソールにプリントアウトすることができるため、正しく動作しています。私は私のアプリですべてのデータを表示することができる必要があります。手伝ってください! // // All.swift //保証価格 //iOSのswift listviewコントローラにfirebase情報を表示するにはどうすればいいですか?
import Foundation
import UIKit
import Firebase
class All: UINavigationController, UITableViewDataSource, UITableViewDelegate {
var items: [String] = []
var tableView: UITableView!
let cellIdentifier = "CellIdentifier"
override func viewDidLoad(){
super.viewDidLoad()
self.tableView = UITableView(frame:self.view!.frame)
self.tableView!.delegate = self
self.tableView!.dataSource = self
self.tableView!.registerClass(UITableViewCell.self, forCellReuseIdentifier: cellIdentifier)
self.view?.addSubview(self.tableView)
let ref = Firebase(url:"https://sizzling-inferno-451.firebaseio.com/services")
ref.observeSingleEventOfType(.Value, withBlock: { snapshot in
for child in snapshot.children {
// let key = child.key //returns -Jikaijsipaij and -kalksdokoas
// let name = child.value.objectForKey("service_name") as NSString?
////
// self.items.append(key)
}
// do some stuff once
print(snapshot.value)
// get these values and put them in the cell's text view. key is more important
print(snapshot.key)
// add to the array and just this array
self.tableView!.reloadData()
})
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath)
// Fetch Fruit
let fruit = items[indexPath.row]
// Configure Cell
cell.textLabel?.text = fruit
return cell
}
// onclick printing
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print(items[indexPath.row])
}
}
まあ、まず第あなたは(項目の配列を移入されていませんtableViewデータソース)に任意のデータを格納します。あなたはref.observeブロック内でそれをしたいでしょう。少なくとも、キーのリストを表示したい場合は、コードがコメントアウトされている必要があります。 Firebase構造にはservice_nameという名前のキーは含まれていないので、時間や型などのキー名を使用する必要があります。 – Jay
よくコメントしたコードは、firebase構造をモデル化しようとしていました。私はそれを実装しようとしたが、service_nameの代わりに私は説明を使用した。私は何らかの理由で、「オプションの型の値AnyObject ?!」というエラーを受け取り続けます。アンラップされていない;あなたは '!'を使用するつもりでしたか? 'または '?' "また、どのように配列を取り込むことができるか提案はありますか?または、何のアイデアからのエラー? Firebaseが正常に動作していて、コントローラーが正しくセットアップされています...私はこのエラーをしばらく扱っており、解決方法がわかりません。 –
オプション(?)は、Swiftの不可欠な部分であるため、おそらく読む必要があります.Appleの変数とオプションについてのチュートリアルはかなり良いです。私はいくつかの援助を提供するべき答えを加えました。 – Jay