2013-10-24 33 views
0

我正在使用多個NSOperationQueue,並將maxConcurrentOperationCount設置爲NSOperationQueueDefaultMaxConcurrentOperationCount。由於內部運行的線程數量過多,iOS應用程序崩潰

在我的應用程序中,我創建了200個或更多的隊列。當隊列中創建大量線程時,我得到了SIGABRT結果。

我的擔憂是:

  1. 我需要確定在一個時間
  2. 裏面的應用程序NSOperations的足夠數量的推薦一些負載均衡的東西了多個隊列。
  3. 如何在使用多個隊列時決定maxConcurrentOperationCount。

我不知道如何擺脫因應用程序內線程數量過多而導致的崩潰。

+0

請發表確切的崩潰日誌,因爲它出現在控制檯上... – sergio

+0

你怎麼知道這是因爲線程數? – jbat100

+0

如果您有200個操作隊列,那麼您可能有設計問題。 – jbat100

回答

0

我可以建議你創建一個固定隊列池重用(如果你真的需要它們)並設置適當數量的最大併發操作,然後使用儀器配置你的應用程序來找到一個很好的折衷,但我強烈建議您不要使用太多的線程來保持您的應用程序響應並且易於調試。

+0

由於每個iOS設備都有不同的硬件配置集,所以如何找到折衷方案。 –

+0

開始發現一些可以在您希望支持的最糟糕的硬件中足夠工作的功能,而其他功能則只能更好地工作。後來你認爲值得你爲每個不同的硬件做不同的配置 – Manu

0

我得到NSInternalInconsistencyException:無法加載文件abc.xib

所以,這是一個暗示,飛機失事的原因。

檢查您嘗試使用abc.xib文件的方式,並確保該文件可以有效使用並與您的Xcode目標相關聯。問題的原因在於此。

+0

你是否檢查過xib文件是否被添加到目標,而不僅僅是添加到主項目中?我可以檢查的是,如果內部有xib文件,則進行構建並檢查該包 – Manu

相關問題