【发布时间】:2017-01-21 15:39:33
【问题描述】:
这是我在 Swift 中的代码:
currentUserFirebaseReference.observeSingleEvent(of: .value, with: { (snapshot: FIRDataSnapshot) in
let UID = snapshot.key
let pictureURL = snapshot.value!["pictureURL"] as! String
let name = snapshot.value!["displayname"] as! String
let currentUser = Person(name: name, bio: "", UID: UID, pictureURL: pictureURL)
self.currentUserInfo = currentUser
})
我刚刚更新到 Xcode 8 / Swift 3,似乎导致了以下错误信息:
“类型 'Any' 没有下标成员”
我在代码的很多地方都调用了snapshot.value!["insert something here"],我收到了这个错误,我无法运行我的代码。
以下代码有效:
let pic = (snapshot.value as? NSDictionary)?["pictureURL"] as? String ?? ""
但是,与以前相比,我看不出现在发生了什么变化,或者是什么使这变得必要。
据我所知,唯一改变的是观察的语法,但我不明白为什么这会导致我的代码停止工作。
【问题讨论】:
-
感谢您纠正埃里克。我也用 Swift 替换了对 Objective C 的剩余引用。
标签: ios swift firebase firebase-realtime-database