2017-08-29 50 views
1

我覺得我錯過了一些東西,這不應該太難。 我正在閱讀我應用程序中初始場景中的一些數據。 我有一個單身人士,我打電話viewDidLoadsingleton.getData()如何在使用tabcontroller時只讀一次數據

此初始場景是選項卡控制器的一部分。雖然我認爲viewDidLoad只會爲每個場景調用一次,但我很確定它在應用生命週期中被調用了幾次。

所以只是想知道是否有一種方法來確保函數調用來檢索一些數據只發生一次。

+0

也許你可以顯示你的單身代碼和你的viewdidload – koropok

+0

你可以在你的應用程序委託instad中調用singleton.getData()。由於每次更改選項卡,每個視圖都會調用viewDidLoad。所以如果你想避免它被多次調用,將其從視圖相關的控制器中刪除。 – andromedainiative

回答

2

viewDidLoad將在所選標籤更改後被調用,您可以更改您撥打getData的地方。

如果你想在viewDidLoad中打電話getData,並確保它不會被多次調用,你可以創建一個標誌並檢查,如果它以前被調用過或沒有。

class Singleton { 
    static let sharedInstance = Singleton() 
    private static var getDataCalled = false 

    func getData() { 
     if Singleton.getDataCalled { 
      return 
     } 
     Singleton.getDataCalled = true 

     // request data 
     print("data requested") 
    } 
} 


Singleton.sharedInstance.getData() 
Singleton.sharedInstance.getData() 

調用getData多次打印數據只請求一次。

相關問題