【问题标题】:Memory leaks in Core DataCore Data 中的内存泄漏
【发布时间】:2010-12-15 14:54:57
【问题描述】:

有人可以帮我吗?新作为 iPhone 开发人员。我在 Core Data 中遇到内存泄漏,我不知道如何修复它。我在 UIViewController 中多次运行此方法(我没有使用 Table View):

-(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

我在 Instruments 中发现了这些内存泄漏:!

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

该方法运行良好,但是,我不断收到这些泄漏

【问题讨论】:

    标签: iphone core-data memory-leaks


    【解决方案1】:

    从您在此处显示的内容很难判断,但这是一个猜测:

    [self setMyPhotoEventsArray: fetchResults] 可能会保留“fetchResults”,然后在 View Controller 的 dealloc 和 viewDidUnload 中你可能会忘记释放它们。

    因此,当视图控制器被关闭时,对数组的引用会丢失,并且您有泄漏。

    【讨论】:

    • 感谢您的回复。我会调查一下,让我感到困惑的部分是从 Core Data 中获取所有这些泄漏。
    猜你喜欢
    • 1970-01-01
    • 2015-11-09
    • 2023-01-30
    • 1970-01-01
    • 2015-02-12
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    相关资源
    最近更新 更多