简而言之,在使用Xcode 9 Beta时,我遇到了以下警告:
不推荐在Swift 4模式下使用Swift 3 @objc推理.请解决已弃用的@objc推理警告,使用"使用已弃用的Swift 3 @objc推理"日志记录测试代码,并禁用Swift 3 @objc推理.**
经过一番研究,我仍然不知道如何解决这个问题.我将非常感谢有关如何解决此问题的任何提示以及对正在发生的事情的解释.
我的目标是更好地理解我的代码发生了什么.
首先,我已经看到了答案: 这里, 但对我来说,来自android和angular只是让人心潮澎湃,必须编写如此多的代码(在android和angular它需要一行的地方)加上答案不是最新的答案所以不知道是否现在还有更好的方法
澄清这里是我的例子:
struct User{
let fistName:String
let lastName:String
}
Run Code Online (Sandbox Code Playgroud)
我用以下方法检索数据:
Firestoer.firestore().collection("users").document('someId').getDocument{
(snapshot,error) in
}
Run Code Online (Sandbox Code Playgroud)
问题是如何使用一行代码将快照值分配给用户对象值 - 如同user = snapshot -ish一样.
我正在从Firebase数据库中检索对象,我需要将它们强制转换为自定义结构类对象
类:
struct Request {
var Address: String!
var Position: Position!
var RequestID: String!
var Status: String!
}
Run Code Online (Sandbox Code Playgroud)
从我的Firebase数据库获取快照的函数:
self.ref.child("requests").observe(.childAdded, with: { snapshot in
//I need to cast this snapshot object to a new Request object here
let dataChange = snapshot.value as? [String:AnyObject]
print(dataChange)
})
Run Code Online (Sandbox Code Playgroud)
我该怎么做?