2010-12-15 63 views
0

有人可以幫我嗎?新的iPhone開發人員。我在Core Data中發生內存泄漏,我不知道如何解決它。我在一個UIViewController運行這個方法好幾次(我不使用表Viiew):核心數據中的內存泄漏

-(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」,然後在視圖控制器的dealloc和viewDidUnload中,您可能會忘記釋放它們。

因此,當視圖控制器被解散時,對數組的引用將丟失,並且您有泄漏。

+0

感謝您的回覆。我會研究這一點,讓我困惑的部分是從Core Data獲取所有這些泄漏。 – Wilmer 2011-01-29 14:50:29