我有伊娃NSMutableArray* _syncModels
和班裏的init方法初始化我像01什麼情況會導致iVar改變其類型?
整個類,我添加並從陣列移除對象,但我從來沒有重新初始化_syncModels
。
所以我得到這個崩潰報告,說-[NSConcreteData filterUsingPredicate:]: unrecognized selector sent to instance 0x23c740c0
。
symbolicating後,導致此故障的線路是[_syncModels filterUsingPredicate:[NSPredicate predicateWithFormat:@"NOT (dataManagerFieldRecord = nil)"]];
世界如何從一個NSMutableArray
到NSConcreteData
_syncModels
變化?
這種崩潰是罕見的,但在那裏的一些對象獲取搞亂了,併發送一條消息它無法處理,我們正變得越來越這些。
我們針對ARC下6.1。
EDIT
我想出問題...我無意中加入self
(該公司擁有的參考_syncModels
)從self
的dealloc
方法到調度隊列...所以這是一個存儲器管理問題......
首先,看一看[該另一SO回答](http://stackoverflow.com/questions/1113811/what-is-nsconcretedata-and-where-is-it-defined)約NSConcreteData和類簇(這是什麼NSMutableArray是)。然後給我們更多關於'_syncModels'中存儲的對象類型的信息。你的bug並不是真的關於NSConcreteData,但它很可能位於你所持有的對象和你創建的謂詞的某個地方。 – sosborn 2013-02-27 17:28:32
@sosborn - 「NSMutableArray」不是「NSConcreteData」的類集羣嗎?我插入到這個數組中的對象都是相同的類型,並且他們的屬性在我的謂詞中被引用。我的單元測試每次都通過。 – 2013-02-27 18:02:44
我的猜測是NSConcreteData實例實際上是引用您在數組中收集的某個對象中的一個屬性。有沒有可能你有一個對'dataManagerFieldRecord'沒有響應的對象? – sosborn 2013-02-27 18:09:08