我想从核心数据中删除我所有的 NSEntityDescription 对象并释放内存。 reset
功能对内存没有任何影响
以下是我的代码
-(void)generatePersons: (NSManagedObjectContext *)privatecontext{
self.persons = [[NSMutableArray alloc]init];
[privatecontext performBlockAndWait:^{
for(int i = 1; i< self.dataRows.count; i++){
NSArray *HeaderRow = [self.dataRows objectAtIndex:1];
NSArray *dataRow = [self.dataRows objectAtIndex:i];
if (dataRow.count <= HeaderRow.count){
int index = 0;
Person *person = (Person *)[NSEntityDescription
insertNewObjectForEntityForName"erson"
inManagedObjectContext:privatecontext];
[self.persons addObject:person];
}
}
[privatecontext reset];
}];
}
此代码 [privatecontext reset];
理论上将上下文设置为其基本状态,据我了解,它也会释放内存,但它不会并保持相同的内存计数
尝试在 block 中使用对 self 的弱引用。
在 block 的内联声明之前创建引用:
__weak __block __typeof(&*self)weakself = self;
然后使用 weakself
代替 self
那里。这可能会阻止线程释放其内存。
关于ios - 从核心数据列表中删除 NSEntityDescription 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42953761/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |