2009-10-06 4 views
11

또는 + (void)의 반대는 무엇입니까?목표 C - 전역 정적 변수는 어디에서 dealloc합니까?

: 함수로 Unit.m 파일에 정의 느리게 만든 글로벌 NSDictionary와, 데이터를 취합니다 (ID) initWithName - 나는 누구의 클래스 단위를 가지고

: 여기

내 상황입니다

정적 NSMutableDictionary * unitLibrary = nil;

어디에서 [unitLibrary release]를 호출해야합니까?

답변

13

사전이 더 이상 필요하지 않은 위치에서 전화 할 수 있습니다. 응용 프로그램의 전체 수명주기 동안 필요하면 응용 프로그램이 종료 될 때 OS에서 모든 메모리를 회수하므로 아무 것도 할 필요가 없습니다.

+0

이것은 아이폰에 있기 때문에 메모리 누수가 있어서는 안됩니다. 사용자가 홈 버튼을 누르고 앱을 종료하면 전체 힙이 할당 해제됩니까? – abtree

+1

예, 집에 도착했을 때 힙을 포함하여 전체 주소 공간이 삭제됩니다. –

+2

집을 철거하기 바로 전에 스프링 청소를 할 필요가 없습니다. 앱을 종료하는 것은 충분히 빠르게 릴리스됩니다. – PeyloW

3

일반적인 용도의 답변이 없습니다. 다시 사용되지 않을 것이라고 확신 할 때 할당을 해제해야합니다. 가능한 후보자는 applicationWillTerminate 대리자 메시지이거나 atexit() 함수를 통해 이루어질 수 있습니다.

+0

응용 프로그램이 종료되면 개체를 해제 할 필요가 없습니다. 어쨌든 메모리가 해제 될 것입니다. – Chuck

+0

네, 이건 안좋은 문제입니다. 여기서 일하는 것은 아무런 의미가 없습니다. 앱 종료가 지연되고 있습니다. – Ken

+1

누설 감지 도구로 생성되는 혼란을 줄이는 것은 유용 할 수 있습니다. 그러나 아마도 그럴만 한 가치는 없습니다. –

관련 문제