2016-11-09 63 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