Core data 导致内存泄漏的核心数据NSSortDescriptor

Core data 导致内存泄漏的核心数据NSSortDescriptor,core-data,memory-leaks,nssortdescriptor,Core Data,Memory Leaks,Nssortdescriptor,当我向核心数据中的获取请求添加排序描述符时,我遇到了内存泄漏。如果我注释掉NSSortDescriptor块,它在仪器中运行时不会出现内存泄漏 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Pools" inManagedObjectContext:self.managedObject

当我向核心数据中的获取请求添加排序描述符时,我遇到了内存泄漏。如果我注释掉NSSortDescriptor块,它在仪器中运行时不会出现内存泄漏

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Pools" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"game.league.id=%i",[lid intValue]];
[fetchRequest setPredicate:predicate];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"game.date" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];

NSError *error;
NSArray *items = [managedObjectContext executeFetchRequest:fetchRequest error:&error];

// Do Something

[fetchRequest release];
[items release];

有什么想法吗?

在排序描述符中,您正在使用keypath
game.date查看一段关系

您的泄漏可能与keypath中的其中一个对象有关。删除排序时,它将消失,因为键路径中的对象不会执行任何操作

如果在
游戏
实体中有瞬态属性、自定义访问器、非实体属性等,我会在那里查看。自定义值转换器也是一个不错的选择


仪器中的堆栈应该准确地告诉您哪个物体在泄漏

那里没有任何自定义代码。核心数据堆栈是否设置错误?不太可能。为什么泄漏会出现在这里而不是您设置核心数据堆栈的位置?仪器会告诉你泄漏的是什么。将此源文件拖到Instruments中,它将显示泄漏线路。检查堆栈中的该行,它将显示哪些对象泄漏。它可能在
//做一些与
游戏相关的
代码中。日期