2014-08-28 6 views
0

천천히 Obj-C를 배우고있어 이것이 멍청한 질문이라면 유감입니다.개체를 다시 할당하면 메모리 누수가 발생합니까?

내 앱에는 단순히 변수 묶음이 들어있는 Object 클래스가 있습니다.

Object *object = [[Object alloc] init]; 

내 프로그램의 정적 싱글 톤 개체에이 클래스의 인스턴스를 만듭니다. 그러나 나는 새로운 인스턴스를 만들 때마다 (즉, resetObject 메서드를 호출하는 버튼이 있습니다) 메모리 사용이 증가한다는 것을 알았습니다.

// DataBank.h 
Object *object; 

// DataBank.m 
- (void)resetObject { 
    object = [[Object alloc] init]; 
    } 

아마도 이전에 Object가 할당 해제되지 않았기 때문일 것으로 생각됩니다. 할당 취소를 시도했지만 ARC에서 허용되지 않는다는 오류가 발생했습니다. 이 주위에 어떤 방법이 있습니까?

+0

위의 코드에는 누출이 없습니다. (우리가보아야 할 객체는 괜찮습니다) –

+0

무엇이 새어 나오고 언제입니까? –

+0

문제는 [DataBank resetObject]를 호출 할 때마다 메모리 사용이 1.5MB 증가합니다. – Dilisqq

답변

-1

다음과 같이 코드를 수정 해 주실 수 있습니까?

// DataBank.m 
- (void)resetObject { 
    if (object) 
    { [object release];} 
    object = [[Object alloc] init]; 
} 
+0

그는 ARC를 사용하고 있으므로 출시 할 수 없습니다. –

관련 문제