2011-07-25 61 views
0

我有一個UITableView,我用CoreData填充數據。我有一個數據訪問類,我調用一個方法來獲取數組數組來填充表。在該方法中我有這樣的事情:NSManagedObjectContext executeFetchRequest返回的數組包含不堅持的對象

NSArray *fetchedArray = [context executeFetchRequest:request error:&error]; 

我只是直接返回該陣列,但在我的視圖控制器得到了一個錯誤,當我嘗試設置保存返回數組的本地地產

@property (nonatomic, retain) NSArray *listData; 

@synthesize listData; // <-- error here -[CFNumber release]: message sent to deallocated instance... 

分別。

似乎我的@property中的'retain'試圖釋放之前似乎已經發布的listData數組(或者,更可能是數組中的一個對象或其中一個屬性已被釋放) 。

所以在我的數據訪問類,我添加了fetchedArray由上下文後產生如下:

NSMutableArray *listArray = [[[NSMutableArray alloc] init] autorelease]; 
for (Response *item in fetchedArray) { 
    [listArray addObject:item]; 
} 

return listArray; 

但我仍然在@synthesize listData得到同樣的錯誤早在視圖控制器。它通常不是第一次發生,但是在敲擊細節控制器之後,返回到列表中,然後重新加載具有不同數據的列表(例如,基於用戶輸入的過濾,其調用數據訪問方法以返回更新列表 - 因此在設置中的錯誤listData)。

我不完全確定,如果我的問題是內存管理相關或與我不瞭解上下文返回的東西有關。如果提取請求返回的數據在我認爲已保留的情況下沒有獲得發佈,那將會很不錯。 :(

編輯注意,給出的答案,問題的標題可能有點誤導

回答

0

啊 - 只是要認爲它通過多一點我的問題是,我是分配一個地址。在我詳細控制器的dealloc數組中的物體的細節控制器上的屬性,但該屬性調用釋放。

改變@property (nonatomic, assign)@property (nonatomic, retain)它不會崩潰後,恭喜。的sooo期待ARC。

相關問題