Swift 3: Return 来自初始化程序错误
Swift 3: Return from initializer error
我收到错误消息:Return 来自初始值设定项,但未初始化所有存储的属性。
我正在使用 swift 3 和 xcode 8 也使用 firebase 作为我的后端。
import Foundation
import FirebaseDatabase
struct Post {
var ref: FIRDatabaseReference
var key: String!
var username: String!
var postId: String!
var postText: String!
init(username: String, postId: String, postText: String, key: String = ""){
self.username = username
self.postId = postId
self.postText = postText
}//<--- im getting the error right here
init(snapshot: FIRDataSnapshot) {
let values = snapshot.value as! Dictionary<String,String>
self.username = values["username"]
self.postText = values["postText"]
self.postId = values["postId"]
self.ref = snapshot.ref
self.key = snapshot.key
}
func toAnyObject() -> [String: AnyObject]{
return ["username":username as AnyObject, "postText":postText as AnyObject,"postId":postId as AnyObject]
}
}
知道如何解决这个问题吗?
存储的属性ref
是非可选类型。
根据规则,必须在每个提供的初始化程序中初始化所有非可选属性。
这意味着您必须为 属性 分配一个初始值,或者将 属性 设为可选。
我收到错误消息:Return 来自初始值设定项,但未初始化所有存储的属性。
我正在使用 swift 3 和 xcode 8 也使用 firebase 作为我的后端。
import Foundation
import FirebaseDatabase
struct Post {
var ref: FIRDatabaseReference
var key: String!
var username: String!
var postId: String!
var postText: String!
init(username: String, postId: String, postText: String, key: String = ""){
self.username = username
self.postId = postId
self.postText = postText
}//<--- im getting the error right here
init(snapshot: FIRDataSnapshot) {
let values = snapshot.value as! Dictionary<String,String>
self.username = values["username"]
self.postText = values["postText"]
self.postId = values["postId"]
self.ref = snapshot.ref
self.key = snapshot.key
}
func toAnyObject() -> [String: AnyObject]{
return ["username":username as AnyObject, "postText":postText as AnyObject,"postId":postId as AnyObject]
}
}
知道如何解决这个问题吗?
存储的属性ref
是非可选类型。
根据规则,必须在每个提供的初始化程序中初始化所有非可选属性。
这意味着您必须为 属性 分配一个初始值,或者将 属性 设为可选。