코어 데이터에서 모든 NSEntityDescription 개체를 제거하고 메모리를 릴리스하려고했습니다. reset
기능은 다음과 같은 메모리핵심 데이터 목록에서 NSEntityDescription 개체 제거
에 어떤 변화를하지 않는 것은 내 코드는 메모리뿐만 아니라 발표 할 예정 나의 이해
-(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:@"Person"
inManagedObjectContext:privatecontext];
[self.persons addObject:person];
}
}
[privatecontext reset];
}];
}
[privatecontext reset];
이론적으로는 기본 상태로 상황에 맞는 설정이 코드, 하지만 그것은 같은 메모리 카운트에 남아 있지 않습니다.
해당 인스턴스는 모두 해당 어레이에 유지됩니다. –
@TomHarrington 우리가'[self.persons addObject : person];에 대해서도 주석을 달아도 for 루프 범위를 벗어난 후에도 여전히 같은 양의 메모리를 차지하고 블록 범위를 대기 –