有人可以帮助我吗?新的iPhone开发人员。我在Core Data中遇到内存泄漏,我看不到如何修复它。我在UIViewController中运行了这个方法几次(我没有使用Table 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 :(得分:0)
很难说你在这里展示了什么,但这是一个猜测:
[self setMyPhotoEventsArray:fetchResults]可能会保留“fetchResults”,然后在View Controller的dealloc和viewDidUnload中,您可能忘记释放它们。
因此,当视图控制器被关闭时,对数组的引用将丢失,并且您有泄漏。