2016-07-01 126 views
2

最近,我已將iPhone升級到iOS 10.在iPhone上安裝我的應用後,我發現當我在我的應用中使用tableView時,它肯定會崩潰。我在診斷表單中的方法cellForRowAtIndexPath和選定的殭屍對象中創建了一些斷點。但消息[CFString release]: message sent to deallocated instance 0x17063b960總是出現在Debug區域。此問題僅在iOS 10 Beta上出現,我不確定iOS 10 Beta是否會引起此問題。有沒有人像我一樣遇到這個問題?我會感激。iOS 10 [CFString發佈]:發送到已釋放實例的消息

更新:

當返回cell,碰撞將出現:Thread 1: EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)Thread 1: signal SIGKILL

示爲吹塑

相關的代碼:

的UITableViewCell *細胞;

HKLoadingModel * model = [self modelForTableView:tableView]; 
ShopServiceType type = model == self.carwashLoadingModel ? ShopServiceCarWash : ShopServiceCarwashWithHeart; 
JTShop *shop = [model.datasource safetyObjectAtIndex:indexPath.section]; 
NSArray * serviceArray = [self filterShopServiceByType:type andArray:shop.shopServiceArray]; 
NSInteger serviceAmount = serviceArray.count; 
NSInteger sectionAmount = 1 + serviceAmount + 1; 

if(indexPath.row == 0) 
{ 
    cell = [self tableView:tableView shopTitleCellAtIndexPath:indexPath]; 
} 
else if (indexPath.row == sectionAmount - 1) 
{ 
    cell = [self tableView:tableView shopNavigationCellAtIndexPath:indexPath]; 
} 
else 
{ 
    cell = [self tableView:tableView shopServiceCellAtIndexPath:indexPath andShopService:serviceArray]; 
} 

return cell; 
+0

請發佈任何相關代碼,crashlog等 –

回答

2

嘗試使用Instruments工具來跟蹤將消息傳遞到釋放實例的位置。蘋果有good guide爲:

  1. 啓動儀器。
  2. 在出現的性能分析模板選擇對話框中,單擊Zombies。
  3. 從目標設備和進程列表中選擇您的設備和應用程序。
  4. 單擊選擇以創建跟蹤文檔。
  5. 單擊工具欄中的錄製按鈕(或按下Command-R)開始錄製。
  6. 正常使用您的應用程序。
  7. 如果對一個釋放對象進行調用,則會在時間線窗格中插入一個標誌,並出現一個Zombie消息對話框,指示 消息已發送到特定內存 地址的釋放對象。
  8. 如果關閉殭屍消息對話框,可以通過單擊該標誌重新打開它。
  9. 單擊殭屍內存 地址旁邊的焦點箭頭,以顯示詳細信息窗格中 詳細信息窗格中殭屍對象的內存歷史記錄,以及相應的引用計數和方法 調用。
  10. 在詳細信息窗格中選擇殭屍事件(或任何其他想要調查的事件)。
  11. 按下Command-3在檢查員的擴展詳細信息區域中顯示所選事件的堆棧跟蹤。
  12. 單擊擴展詳細信息 區域中的摺疊按鈕可隱藏堆棧跟蹤中的系統調用。這使得您可以更輕鬆地找到您的應用的方法 。
  13. 由您的應用程序進行的調用顯示爲黑色,並以用戶代碼圖標開頭。
  14. 雙擊堆棧跟蹤中的方法以在儀器中顯示其代碼。
  15. 單擊詳細信息窗格頂部的Xcode按鈕以打開Xcode中的代碼進行編輯。

在我的情況下,崩潰是由FoundationExtension莢版本0.59引起的。一旦我將它刪除,我就再也沒有崩潰。

+0

「Press Command-3」:它在我的電腦上製作截圖... –

+0

@Regis_AG可能你還有一個Shift按下 - 這是一個全屏幕拍攝的標準熱鍵。您始終可以使用菜單「視圖 - >檢查器 - >顯示擴展細節」。記住你必須在主要部分選擇事件。 – ReDetection

0

確保您的財產類型爲Strong

1

我們遇到了同樣的事故,並找到導致事故發生的原因。我們使用了名爲FoundationExtension的第三方庫,其內部在其NSObject類別中覆蓋了serval memeory管理調用。我們刪除了該庫,它工作。

相關問題