Swift 将数组数据加载到tableview中

Swift 将数组数据加载到tableview中,swift,tableview,Swift,Tableview,我有一个firebase数据库设置,我返回了一些我想要的密钥。我希望这些键是tableview行的标题。当我运行下面的代码时,它将返回我在本例中[Athens,Delaware]所需的数组。我从view-did-load方法加载这个数组 如何使数组中的每个项成为tableView中的单元格行 当我尝试执行以下代码时,我得到了这个错误: 无法将“Swift.Array”0x10c7ed2c0类型的值强制转换为“Swift.String”0x10c7d2888 let ref = Database.

我有一个firebase数据库设置,我返回了一些我想要的密钥。我希望这些键是tableview行的标题。当我运行下面的代码时,它将返回我在本例中[Athens,Delaware]所需的数组。我从view-did-load方法加载这个数组

如何使数组中的每个项成为tableView中的单元格行

当我尝试执行以下代码时,我得到了这个错误:

无法将“Swift.Array”0x10c7ed2c0类型的值强制转换为“Swift.String”0x10c7d2888

let ref = Database.database().reference()

    var markets: [loadMyData] = []

    var myKey = [Any]()

    override func viewDidLoad() {
        super.viewDidLoad()



        ref.child("Markets").observeSingleEvent(of: .value, with: { (snapshot) in

            var myNewKey: [Any] = []

            let allMarkets = (snapshot.value as! NSMutableDictionary).allKeys
            myNewKey.append(allMarkets)
            self.myKey = myNewKey
            self.tableView.reloadData()
        })


    }

发生此错误的原因是代码snapshot.value为!NSMutableDictionary.allKeys返回一个数组,您正在将此数组作为数组项添加到myKey!当然,不能将数组强制转换为字符串

尝试以下代码,看看会发生什么:

let ref = Database.database().reference()

    var markets: [loadMyData] = []

    var myKey = [Any]()

    override func viewDidLoad() {
        super.viewDidLoad()



        ref.child("Markets").observeSingleEvent(of: .value, with: { (snapshot) in

            var myNewKey: [Any] = []

            let allMarkets = (snapshot.value as! NSMutableDictionary).allKeys
            self.myKey = allMarkets
            self.tableView.reloadData()
        })


    }

您不在RTDB上使用Firestore有什么特殊原因吗?
let ref = Database.database().reference()

    var markets: [loadMyData] = []

    var myKey = [Any]()

    override func viewDidLoad() {
        super.viewDidLoad()



        ref.child("Markets").observeSingleEvent(of: .value, with: { (snapshot) in

            var myNewKey: [Any] = []

            let allMarkets = (snapshot.value as! NSMutableDictionary).allKeys
            self.myKey = allMarkets
            self.tableView.reloadData()
        })


    }