나는이 코드를 사용하여 몇 일 동안 메모리 누수의 원인을 확인하기 위해 노력했습니다. 거의 모든 "for 루프"이후의 모든 라인은 누출 성능 도구에서 메모리 누출 백분율을 생성합니다.다차원 배열에서 메모리 누수 : NSMutableArray, NSArray, addObject 및 insertObjectAtIndex
나는 그것을 작동시키기 위해 다양한 순열을 시도 해왔다.
-(void)populateArrays
{
NSArray *arrTempSorted;
[arrContacts removeAllObjects];
[arrZzoneContacts removeAllObjects];
[arrNormalContacts removeAllObjects];
for(int i = 0 ; i < 200 ; i++)
{
[arrZzoneContacts addObject:[[[NSArray alloc] initWithObjects: [NSNumber numberWithInt:1], @"Composite Name", @"YES", @"first name", @"last name", @"first", nil] autorelease]];
[arrNormalContacts insertObject:[[[NSArray alloc] initWithObjects: [NSNumber numberWithInt:1], @"Composite Name", @"YES", @"first name", @"last name", @"first", nil] autorelease] atIndex:[arrNormalContacts count]];
[arrContacts addObject:[[[NSArray alloc] initWithObjects: [NSNumber numberWithInt:1], @"Composite Name", @"YES", @"first name", @"last name", @"first", nil] autorelease]];
}
arrTempSorted = [arrContacts sortedArrayUsingFunction:order context:NULL];
arrContacts = [arrTempSorted mutableCopy];
arrTempSorted = [arrZzoneContacts sortedArrayUsingFunction:order context:NULL];
arrZzoneContacts = [arrTempSorted mutableCopy];
arrTempSorted = [arrNormalContacts sortedArrayUsingFunction:order context:NULL];
arrNormalContacts = [arrTempSorted mutableCopy];
//[arrTempSorted release];
}
배열과 기능이 appDelegate.h 파일에 있습니다
이
내가 시도하고 그것의 바닥에 도착 지금 실행하고있어 코드입니다. 배열은과 같이 초기화됩니다- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//Global variables
arrContacts = [[NSMutableArray alloc] init];
arrZzoneContacts = [[NSMutableArray alloc] init];
arrNormalContacts = [[NSMutableArray alloc] init];
// Override point for customization after application launch.
[window addSubview:tabBarController.view];
[self.window makeKeyAndVisible];
return YES;
}
나는 다음 didFinishLaunchingWithOptions의 배열을 선언을 발표 한 후 (예를 들어)를 arrContacts에 할당하고 방법을 시도했지만 나는 "나쁜 접근"오류가 발생할 때 populateArrays 메소드를 호출하십시오.
어떤 통찰력은 크게 감사하고 내가 두 번째 코드 발췌에서 자세히에게
안녕하세요. 신속하고 유익한 답변을 보내 주셔서 감사합니다. 현재 누출 도구가 응용 프로그램을 손상시키는 문제가 발생하여이 시점에서 성공 또는 실패를 확인할 수 없습니다. 내가 처음이 솔루션을 구현하려 할 때 잘못된 액세스 오류가 발생했습니다. 나는이 문제들을 해결하고 내 결과가 무엇인지 알려 줄 때 다시 회신 할 것입니다. – Mark
후속 조치 : NSMutableArray의 sortUsingFunction : context 메소드를 사용하여 누출 문제를 성공적으로 해결했습니다. 도와 주셔서 다시 한번 감사드립니다 !! 악의적 인 접근은 누출을 고쳐야 만 불필요했던 누적 된 전화가 릴리스로 인해 발생했습니다. – Mark