2013-01-18 18 views
2

我看到的問題完全一樣,這裏描述:http://fingertwister.tumblr.com/post/32341639626/coredata-problem-with-multiple-stores-usingNSFetchedResultsController在iOS 6中崩潰,如果指定affectedStores

即兩家店,一個靜態的其他用戶生成的。設置一個NSFetchedResultsController以從其中一個商店獲取。當控制器解除分配時,應用程序在NSArray實例上使用EXC_BAD_ACCESS進行崩潰。代碼在iOS 4和5中工作得很好;該崩潰僅發生在iOS 6中。

殭屍分析顯示被釋放的NSArray被消息是NSFetchResultsController的NSFetchRequest的'affectedStores'屬性。就像在上面的鏈接中一樣,如果我刪除[fetchRequest setAffectedStores:...]命令,問題就會消失。而且,就像在鏈接的例子中一樣,就我自己的代碼而言,就數組的內存管理而言,我看不出任何問題。

Docs似乎沒有說iOS 6在這方面有什麼變化。我錯過了什麼嗎?

回答

3

此問題是由於CoreData中某處出現內存管理錯誤導致受影響的存儲陣列提前發佈而引起的。

您可以解決此通過增加引用計數爲一個黑客: https://gist.github.com/maruno/5451607

+0

「的地方在CoreData不順心的事」?請爲這個問題提供答案。給一個鏈接是不夠的,請在這篇文章中描述答案。 –

+0

我接受這個答案,因爲它是一個似乎是Apple漏洞的體面解決方法。感謝代碼片段。 – jfewtr

+1

3年和3個iOS版本後,這個錯誤依然存在... –