2011-07-25 5 views
0

私は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... 

私のプロパティでは、すでにリリースされているようだ(または、おそらくアレイ内のオブジェクトまたはそのプロパティの1つがリリースされていた)以前のlistData配列を解放しようとしていたようですが、 。

fetchedArrayは、コンテキストによって生成された後、だから私のデータアクセスクラスで私は、次を追加しました:

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

return listArray; 

しかし、私はまだビューコントローラで@synthesize listDataバックに同じエラーを取得します。通常は初めてではありませんが、ディテール・コントローラーをタップしてからリストに戻って別のデータでリストをリロードした後(例えば、データ・アクセス方法を呼び出すユーザー入力に基づいてフィルターをかけて、リスト - したがって、listDataのためのセッターのエラー)。

私の問題がメモリ管理に関連しているか、何かに関連しているかどうかは、コンテキストが返すものについて私が理解していない場合は完全にはわかりません。フェッチ要求が、私がそれを保持していると思ったときに解放されなかったデータを返したなら、それはいいかもしれません。 :(

EDIT答えを与え注、質問のタイトルは少し誤解を招くかもしれ

答えて

0

ああ - 。ただもう少しを通してそれを考えるために持っていた私の問題は、私は1つを割り当てたということでした。詳細コントローラのプロパティに配列内のオブジェクトのが、私の詳細コントローラのdeallocをして、そのプロパティのリリースを呼び出す。

@property (nonatomic, retain)@property (nonatomic, assign)を変更した後、それはクラッシュしません。わーい。すっごくはARCを楽しみにして。

関連する問題