2016-09-19 17 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

正確にはどういう意味ですか?私はキー、postTextなどと呼んでどこでrefを呼び出す必要がありますか? – mavericklab

+0

私は答えを更新しました。 – vadian

+0

私は悲しいことではありませんが、あなたが何を意味するかを私に見せてくれる方法はあります。私が追加しなければならないもののように?私は迅速かつすべてを学び、それをすべて学びたいと思っています。 – mavericklab

関連する問題