簡體   English   中英

在目標 C 中創建 singleton class 的另一個實例

[英]Creating another instance of a singleton class in Objective C

我有一個 singleton class 正在整個應用程序中使用。 我正在研究另一個 class,它需要向這個 singleton class 發送數據,但可以成批發送數據,這會凍結主線程。

我應該創建這個 singleton class 的另一個實例,還是應該創建一個數據導入實用程序作為單獨的 class?

單例,顧名思義,意味着只有一個實例在周圍浮動。 應該調度凍結主線程的數據,class 的另一個實例對此無濟於事。

隨心所欲地創建另一個實例,但不要再將其稱為 singleton。

實際上,您應該在另一個線程中發送此數據,並可能在發送數據時使用 NSLock,這樣您就不會出現任何訪問錯誤。

采用:

[self performSelectorOnBackGround:@selector(sendDataToSingleton:) withObject:@"data to send"];

不要創建 singleton class 的另一個實例,否則您的應用程序的 rest 將無法訪問它,因為它是 singleton。

希望能幫助到你。

根據定義,您應該只有 1 個 singleton 實例。如果它是一個正確構造的 singleton,則不應有超過 1 個!

如果您遇到主線程無響應的問題,請將需要加載的數據分解為更小的數據塊。 這樣,在加載不同數據塊之間,主線程可以處理它需要的任何事件,其他對象可以訪問 singleton 中的數據。

您還可以實施延遲數據加載機制,當 object 需要來自 singleton 的信息時,singleton 會檢查您的新 class 是否正在等待提供新信息,然后加載它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM