iPhone 앱에서 메모리 누수가 필연적으로 필요합니다. 앱이 앱 스토어에 제출할 준비가되었거나 안정적이며 iPhone 시뮬레이터 나 Clang에서 메모리 누수가 전혀 발생하지 않았지만 내 iPod Touch에서 그 (것)들과 수수께끼로 보입니다.코어 데이터 메모리 누수 - iPhone iOS4
코어 데이터에서 데이터를 검색하려고 할 때 모두 managedObjectModel에서 비롯된 것처럼 보입니다.
내 응용 프로그램의 핵심 데이터 코드가 Xcode에 의해 자동으로 생성되었으므로 xcode가 생성 될 때 코드가 변경된 것을 확인했습니다 ... 이전 버전과 새로운 버전을 시도했지만 아무런 차이가 없습니다.
다음 코드를 주석 처리하면 문제가 사라집니다 ... 어쨌든 문제가있는 것을 볼 수 있습니까? 나는 지금까지 이것에 9 시간을 썼고, 단지 그것을 이해할 수 없다!
NSString *entityForName = [[NSString alloc] initWithString:@"OfflineSettings"];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:entityForName inManagedObjectContext:[self managedObjectContext]];
[request setEntity:entity];
[entityForName release];
NSSortDescriptor *sortById = [[NSSortDescriptor alloc] initWithKey:@"Id" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortById]];
[sortById release];
NSError *error;
NSMutableArray *mutableFetchResults = [[[self managedObjectContext] executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil) {
// Handle the error.
NSLog(@"Error fetching");
}
int intId = -1;
if ([mutableFetchResults count] == 0) {
TTDERROR(@"No id has been saved to offline settings");
} else {
OfflineSettings *offlineSettings = (OfflineSettings *)[mutableFetchResults objectAtIndex:0];
intId = [offlineSettings.Id intValue];
}
[mutableFetchResults release];
[request release];
누설 특별히이 줄 것으로 보인다
:
NSMutableArray *mutableFetchResults = [[[self managedObjectContext] executeFetchRequest:request error:&error] mutableCopy];
..와 [자기 managedObjectContext]에 대한 코드가 도움이 경우에는 다음과 같다 ..
- (NSManagedObjectContext *)managedObjectContext {
if (managedObjectContext_ != nil) {
return managedObjectContext_;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
managedObjectContext_ = [[NSManagedObjectContext alloc] init];
[managedObjectContext_ setPersistentStoreCoordinator:coordinator];
}
return managedObjectContext_;
}
나는 정말 상실감이있다. 그래서 나는 약간의 도움에 너무 감사 할 것이다!
스티븐
어떻게 그 라인이 특별히 누설을 일으키는 지 알 수 없지만 왜 변경 가능한 복사본을 만드나요? 배열을 수정하지 않고 그냥 액세스 한 다음 놓습니다. 또한 iPod에서 누수를 어떻게 감지 하나 시뮬레이터에서는 감지하지 못합니까? – bobDevil
안녕하세요, mutableCopy는 원래 이것을 복사 한 샘플 코드에 있습니다. 나는 그것을 시험해 보았고, 동반 릴리스를 없애 버렸지 만, 도움이되지는 않는다. 악기를 사용하여 iPod에서 누출을 감지하고 있습니다. 고마워, –