2016년 5월 11일 수요일

Objective-C Memory Leak을 줄이는 초간단 습관 (set객체 할 때) - ARC가 활성화되지 않은 경우 이용

-(void)setOrigin:(XYPoint*)pt{
  origin = pt;
}

이렇게 전달 받는 XYPoint 포인터객체를 바로바로 할당하게 되면,
이전에 사용중이던 origin 포인터객체는 메모리에 상주하며 계속 점유하게 된다.

새로운 값으로 할당하기 전에 이전 사용하던 값은 해제하는 습관을 기르자.


-(void) setShape:(Shape*) shapeVal{
    if( shape){
        [shape release];
        shape = [shapeVal retain];
    }
    else{
        shape = [shapeVal retain];
    }

}

댓글 없음:

댓글 쓰기