わからないこと
// 関数の定義 class PostApi { var REF_POSTS = FIRDatabase.database().reference().child("posts") func observePosts(completion: @escaping (Post) -> Void) { REF_POSTS.observe(.childAdded) { (snapshot: FIRDataSnapshot) in if let dict = snapshot.value as? [String: Any] { let newPost = Post.transformPostPhoto(dict: dict, key: snapshot.key) completion(newPost)⇦ わからない部分① } } } } // 関数の呼び出し override func viewDidLoad() { super.viewDidLoad() loadPosts() } func loadPosts() { Api.Post.observePosts { (post) in ⇦ わからない部分② self.fetchUser(uid: post.uid!, completed: { self.posts.append(post) }) } }
おそらくなのですが、わからない部分①のnewPostの値がわからない部分②のpostに入っていると思います。
completionで渡して、呼び出し時にトレイリングクロージャで引数を付ければ、値は渡されると考えておけばよいですか?
たくさん調べて、トレイリングクロージャのことはなんとなく理解できたのですが、値が渡される部分がいまいち理解できません。
補足なのですが、.childAddedで取得した値が、snapshotで受け取られていると思うのですが、そこもおんなじ感じでしょうか?
すみませんが、よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/13 09:21
2018/07/13 09:32