Swift Неоднозначное использование «подстрочный» - PullRequest
0 голосов
/ 17 ноября 2018

Я недавно добавил новые модули в свой проект и обновил предыдущие, этот код работал все раньше, и теперь я получаю «неоднозначное использование« нижнего индекса »». Я проверял другие ответы, и похоже, что яв настоящее время это правильный путь.Я не уверен, почему вдруг эти строки кода были помечены как ошибки.

databaseRef.child("following").queryOrderedByKey().observeSingleEvent(of: .value, with: { (postsSnapshot) in
    let posts = postsSnapshot.value as! [String: AnyObject]
    for (_, post) in posts {
        for (_, postInfo) in post as! [String: AnyObject] {

            if let followingID = postInfo["uid"] as? String {
                for each in self.following {
                    if each == followingID {

                        guard let uid = postInfo["uid"] as! String? else {return}
                        guard let name = postInfo["businessName"] as! String? else {return}
                        guard let address = postInfo["businessStreet"] as! String? else {return}
                        guard let state = postInfo["businessState"] as! String? else {return}
                        guard let city = postInfo["businessCity"] as! String? else {return}

                        let data = ["uid":postInfo["uid"] as! String, "businessName":postInfo["businessName"] as! String, "businessStreet":postInfo["businessStreet"] as! String, "businessState":postInfo["businessState"] as! String, "businessCity":postInfo["businessCity"] as! String,"businessZIP":postInfo["businessZIP"] as! String, "businessPhone":postInfo["businessPhone"] as! String, "businessLatitude":postInfo["businessLatitude"] as! String, "businessLongitude":postInfo["businessLongitude"] as! String, "businessWebsite":postInfo["businessWebsite"] as! String, "facebookURL":postInfo["facebookURL"] as! String, "foursquareURL":postInfo["foursquareURL"] as! String, "googleURL":postInfo["googleURL"] as! String, "instagramURL":postInfo["instagramURL"] as! String, "snapchatURL":postInfo["snapchatURL"] as! String, "twitterURL":postInfo["twitterURL"] as! String, "yelpURL":postInfo["yelpURL"] as! String]

1 Ответ

0 голосов
/ 17 ноября 2018

Проблема в том, что вы используете AnyObject.postInfo объявляется как AnyObject, но затем вы пытаетесь использовать его как словарь, что приводит к ошибке.

Если post - словарь словарей, тогда объявите так:

Изменить:

for (_, postInfo) in post as! [String: AnyObject] {

на:

for (_, postInfo) in post as! [String: [String: AnyObject]] {

Это изменит postInfo на [String: AnyObject] вместо AnyObject.

...