2016-08-12 40 views
0

我有一個類URLEmbeddedView,它對給定的字符串執行操作。但是我試圖用這個class來處理一串串,而不是一個。我準備了一個ArrayString,現在我想在Array的每個元素上執行這個類。使用陣列元素作爲需要字符串的類的輸入

代碼:

var linkArray = [String]() //Contains bunch of Elements 

OGDataProvider.sharedInstance.fetchOGData(urlString: TheUrlString) { [weak self] ogData, error in 
      if let _ = error { 
       return 
      } 

      let pageTitle = ogData.pageTitle 
      Cell.titleLabel.text = pageTitle 
} 

所以不是TheUrlString我希望有我的數組,因爲我需要PAGETITLE該陣列中的每個元素。我怎樣才能做到這一點?是否可以使用循環遍歷每個元素的if?

+0

這個功能,如果你編輯fetchOGData得到的字符串表,你可以這樣做 –

+0

你不可錯過的陣列中的所有其它邏輯urlString如果參數接受一個字符串,除非你有你可以改變的源代碼。您可以使用for-in循環來初始化多個異步操作以下載數據。如果你想依賴或者取消能力,那麼'NSOperationQueue'可以提供幫助。 – Khundragpan

回答

1

你可以嘗試這樣的

func fetchTitleOGData(index: Int) { 
    if (index < linkArray.count) { 
     OGDataProvider.sharedInstance.fetchOGData(urlString: linkArray[index]) { [weak self]  ogData, error in 
      if let _ = error { 
        //Try again to fetch title 
        fetchTitleOGData(index) 
      } 
      else { 
       titleArr.append(ogData.pageTitle) 
       fetchTitleOGData(index + 1) 
      } 
     } 
    } 
    else { 
     //All the title set do what you want. 
    } 
} 

現在叫像

self.fetchTitleOGData(0) 
+0

謝謝,在我看來,我喜歡我想要的方式。編輯git源並不那麼方便。 – ffritz

+0

但是這個函數將需要時間來執行所有的url。所以最好在調度的背景下調用它。 –

相關問題