2010-12-15 3 views
0

誰かが私をここで助けることができますか? iPhoneデベロッパーとしての新機能コアデータでメモリリークが発生していますが、修正方法はわかりません。私は(私は表Viiewを使用していない)のUIViewControllerでこのメソッドを複数回実行しています:コアデータのメモリリーク

-(void)fetchEvents: (NSString *) predicateSearch localEvent:thisEvent { 
    NSManagedObjectContext *context = [thisEvent managedObjectContext]; 

    NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [thisEvent entity]; 
    [request setEntity:entity]; 

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; 
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
    [request setSortDescriptors:sortDescriptors]; 

    [sortDescriptors release]; 
    [sortDescriptor release]; 

    // Predicate for main screen 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"type matches %@", predicateSearch]; 
    [request setPredicate:predicate]; 

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

    if (fetchResults == nil) { 
     NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
    } 

    [self setMyPhotoEventsArray:fetchResults]; 

    [request release]; 

} // fetchEvents 

そして私は楽器でこれらのメモリリークを取得しています:!

Leaked Object # Address Size Responsible Library Responsible Frame 
_PFArray 3 <multiple> 96 CoreData -[NSSQLCore _prepareResultsFromResultSet:usingFetchPlan:withMatchingRows:] 

Leaked Object # Address Size Responsible Library Responsible Frame 
GeneralBlock-32 2 <multiple> 64 CoreData PF_ALLOCATE_OBJECT_ARRAY 

方法は正常に動作、しかし、私はこれらのリークに

答えて

0

を取得してそれはあなたがここに表示されたものから伝えるのは難しいのですが、ここでは推測だ保つ:

[自己setMyPhotoEventsArray:fetchResults]おそらく保持"fetchResults"、次にView ControllerのdeallocとviewDidUnloadでそれらを解放することを忘れているかもしれません。

このように、View Controllerが終了すると、配列への参照が失われ、リークが発生します。

+0

お返事ありがとうございます。私はこれを調べます。私を混乱させる部分は、コアデータからこれらの漏れをすべて取り除くことです。 – Wilmer