Swift3中的Firebase查询错误:键入' NSFastEnumerationIterator.Element' (又名'任何')不符合协议' AnyObject'

时间:2016-09-17 18:47:32

标签: ios firebase firebase-realtime-database swift3

我不确定如何解决此错误。有人可以解释一下吗?

Type 'NSFastEnumerationIterator.Element' (aka 'Any') does not conform to protocol 'AnyObject'

这是我的查询。

media24HourQuery.observe(FIRDataEventType.value, with: { snapshot in

        var newItems = [[String: AnyObject]]()

        for child in snapshot.children {
            let title = (child as AnyObject).value["title"] as? String
            let userID = (child as AnyObject).value["userID"] as? String
            let mediaID = (child as AnyObject).value["mediaID"] as? String
            let timestamp = (child as AnyObject).value["timestamp"] as? Double

编辑:这也不起作用(一切都是零)

        for _ in snapshot.children {

            let title  = (snapshot.value as? NSDictionary)?["title"] as? String
            let userID = (snapshot.value as? NSDictionary)?["userID"] as? String
            let mediaID = (snapshot.value as? NSDictionary)?["mediaID"] as? String
            let timestamp = (snapshot.value as? NSDictionary)?["timestamp"] as? Double

如果我打印(孩子),这就是我得到的:

    // print(child)
    Snap (XsUwNDQB3qPdjYFCOLzANmsjjpf1-1474144681) {
    mediaID = "XsUwNDQB3qPdjYFCOLzANmsjjpf1-1474144681";
    timestamp = 1474144681490;
    title = "outside sep 17";
    userID = XsUwNDQB3qPdjYFCOLzANmsjjpf1;
}

编辑:解决了。这有效:

            let snapDic = snapshot.value as? NSDictionary
        for child in snapDic! {
            print (child)

            let childDic = child.value as? NSDictionary

            let title  = childDic?["title"] as? String
            let userID = childDic?["userID"] as? String
            let mediaID = childDic?["mediaID"] as? String
            let timestamp = childDic?["timestamp"] as? Double

0 个答案:

没有答案