2016-09-19 53 views
0

我收到並顯示錯誤消息:從初始化程序返回而未初始化所有存儲的屬性。Swift 3:從初始化程序錯誤返回

我使用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] 

} 


} 

任何想法,我該如何解決這個問題?

回答

0

存儲的屬性ref是非可選類型。

根據規則,必須在每個提供的初始化程序中初始化所有非可選屬性。

這意味着您必須爲該屬性分配一個初始值,或者使該屬性爲可選。

+0

那是什麼意思?我必須在ref中調用key,postText等? – mavericklab

+0

我更新了答案。 – vadian

+0

對不起,我不是故意痛苦,但有什麼方法可以告訴我你的意思。就像我必須補充的?我是新手,迅速和一切,並試圖學習這一切。 – mavericklab

相關問題