2012-11-05 3 views
0

UIView를 화면에서 멀리 이동시키는 애니메이션 블록이 있습니다. 완료 블록에서 UIView 및 그 하위 뷰를 보유하고있는 객체를 릴리스하고 있습니다.
이 작업을 수행 할 수 있습니까?에서 받아 들일 수있는 객체를 해제하고 있습니다 : 완료 블록?

+1

그것은 완료 블록이 실행되는 위치와 보존 위치에 따라 다릅니다. 보기는 하위보기를 유지하고보기가 해제 될 때 기본적으로 해제하므로 사용자가 직접 해제 할 필요가 없습니다. –

+1

당신은 그걸 할 수 있습니다 .. – samfisher

+0

정확히 "릴리스 객체"는 무엇을 의미합니까? 이 지역 변수가 있습니까? 인스턴스 변수? 또는 무엇을? 지역 변수의 경우 retain 및 release는 항상 동일한 범위에서 균형을 유지해야합니다. 그래서 외부 블록을 유지하고 내부 블록을 해제하는 것은 잘못된 것입니다. 인스턴스 변수의 경우, 릴리스 후에 인스턴스 변수를 nil로 설정해야합니다. – newacct

답변

2

일반적으로 :주의 사항 :이 경우 예상치 못한 복잡성이 발생하지 않습니다. 완료 블록에서해야 할 일은 완벽하게 이해할 수있는 일입니다.

귀하의 상황에서 : 물건을 과도하게 출시하지 않도록하십시오. 코드를 볼 수 없으면보기의 수명주기와 관련하여이 작업을 수행 할 때 확실하지 않습니다. UIView가 파괴 될 때 수행되는 프로세스를 이해했는지 확인하십시오. 그것은 확실히 읽을만한 가치가 있습니다 : http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ViewLoadingandUnloading/ViewLoadingandUnloading.html

관련 문제