3 가지 크기가있는 퍼즐 게임을 제작 중입니다. 로드 된 이미지는 퍼즐의 크기에 따라 다릅니다. 간단히하기 위해 나는 그것들을 작은/중간/큰이라고 부를 것이다. 내 뷰를로드 할 때 퍼즐의 크기를 말하고 loadImages 메서드를 호출합니다. 자동 렌더링 된 개체 다시 할당
@property (nonatomic, retain) UIImage *solidSquare;
그래서 내 loadImages 방법에 내가 가진 :
self.solidSquare = [[[UIImage alloc] initWithContentsOfFile:solidPath] autorelease];
solidPath 동적 퍼즐 크기에 따라 결정된다
나는이처럼 설정되어 속성을 가지고있다.
이제 사용자가 다른 퍼즐 크기로 전환하면 게임이 시작될 때 loadImages가 다시 호출됩니다. 이 메모리 상황을 어떻게 처리합니까? 내 loadImages 메소드의 처음에 이것을 호출해야한다고 생각합니다.
[self.solidSquare release];
마? 로드 된 것이 처음인지 여부를 평가하려면 어떻게해야합니까?
질문을 읽었을 때 이미 답변을 게시했습니다. autorelease가 무엇을 의미하는지, 특히 그 속성이 retain/release를 처리한다는 것을 설명하기 위해 +1. 그러나 '보유'/ '강한'속성이라는 것을 언급하고 싶을 수도 있습니다.이 경우 마법을 사용합니다. – ATaylor
그래서 내보기가 dealloc'd 때 그것을 풀어 필요가 없습니다? 나는 그것이 합리적이라고 생각한다. 재 할당 된 경우 오래된 객체를 릴리스한다는 것을 알지 못했습니다. 이것을 수동으로 관리하고 싶다면 solidSquare == nil인지 평가해야합니까? 그렇다면 그것을 할당하기 전에 해제해야합니까? – JamesB41
@ JamesB41 당신은 그것을 dealloc에서'nil'으로 설정해야합니다. 업데이트를 참조하십시오. –