我已經編寫了一個包含自定義搜索類的應用程序。這會建立一系列結果。iOS發佈對象太早 - 可能與Autorelease和Copy混淆
我然後分配數組到我FirstViewController類,並重新加載它有分配給它的結果數組表視圖
self.aResults = [thisSearch.aResults copy]
...
[[self searchResults] reloadData];
這樣做,我釋放後不久thisSearch
[thisSearch release];
這一切都正常工作,並顯示結果表,但如果我向下滾動表格並查看下面的行,它們都是空白的,然後當我重新加載循環表cel時滾動備份應用程序崩潰LS。
這不是發生在我面前,但我意識到我是泄漏內存,讓我去自動釋放瘋狂,並增加了很多自動釋放到我搜索類。但不是我的FirstViewController類。
因此,如果我使用複製,它實際上沒有做一個對象的副本,它只是增加引用計數器?所以,當我摧毀搜索,我摧毀在那裏的結果數組,並因此破壞FirstViewController試圖訪問表視圖?
對不起,如果沒有多大意義,我今天感覺不太好。
而不是'self.aResults = [thisSearch.aResults copy]'你應該做'@property(nonatomic,copy)NSArray * aResults;'這樣的aResults拷貝屬性。然後當你設置這個屬性時,它會自動獲得你設置它的對象的副本。當完成aResults內部的任何操作時,執行'self.aResults = nil',它將被釋放。我還沒有提交這個答案,因爲它只是一個提示,但這不是你的應用程序崩潰的原因。沒有更多的代碼,我不知道它爲什麼會這樣做。 –