2016-11-09 32 views
2

首先可以有人帮我想出一个更好的标题?我只是不知道这一个正确的术语。如何创建一个将数据插入块的函数

这里是我的代码,

func loadPublicFeed() { 

    ref = FIRDatabase.database().reference() 
    ref.child("brackets").observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in 
     if let bracketsSnapshot = snapshot.children.allObjects as? [FIRDataSnapshot] { 
      for brackets in bracketsSnapshot { 
       if let bracketsDict = brackets.value as? Dictionary <String, Any> { 
        let key = brackets.key as String 
        let post = BracketsPublicFeed(postKey:key, postData: bracketsDict) 
        self.posts.insert(post, at: 0) 
       } 
      } 
     } 
     self.stopRefresher() 
     self.collectionView.reloadData() 
     self.watchlistClicked = false 

    }) 
} 

下载数据,然后做的东西。我想把这个函数重构它,所以我可以调用重构函数,并将它们添加到其中。

它可能是这个样子,

func loadFeedTest() { 
    fetchTest.loadPublicFeed(collectionView: self.collectionView, completionHandler: {() -> Void in 
     self.stopRefresher() 
     self.collectionView.reloadData() 
     self.watchlistClicked = false 
     }) 

我已经使用completionHandlerfunc loadPublicFeed(completionHandler:() -> Void)那么代码尝试。我做了很多变化。我觉得我可能会走在正确的道路上,但我无法指出这一点。

+0

如果你想使用一个完成处理程序,你可以使用它。你可以检查我的答案。有关swift中闭包的更多信息,我建议您阅读此文档https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html – KrishnaCA

回答

2

你可以重构你的函数以下列方式:

func loadPublicFeed(collectionView: UICollectionView, completionHandler:() -> Void) { 

    ref = FIRDatabase.database().reference() 
    ref.child("brackets").observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in 
     if let bracketsSnapshot = snapshot.children.allObjects as? [FIRDataSnapshot] { 
      for brackets in bracketsSnapshot { 
       if let bracketsDict = brackets.value as? Dictionary <String, Any> { 
        let key = brackets.key as String 
        let post = BracketsPublicFeed(postKey:key, postData: bracketsDict) 
        self.posts.insert(post, at: 0) 
       } 
      } 
     } 
     completionHandler(); 
    }) 
} 
+0

感谢您的帮助,我发现这是另一回事。欣赏它! – Ro4ch

+1

不客气。乐于帮助 :) – KrishnaCA

相关问题