2012-08-15 4 views
0

모달 뷰를 닫는 데 이상한 문제가 발생했습니다. 백 버튼모달 뷰가 해제 된 후에 자체적으로 해제되지 않습니다.

ResepiDetail *detail =(ResepiDetail*)[[ResepiDetail alloc]init]; 
[self presentModalViewController:detail animated:YES]; 

이처럼 기각 :

는이 같은 모달 뷰를 제공 뷰 자체를 일축하고 이전보기로 돌아갑니다이 후

[self dismissModalViewControllerAnimated:YES]; 

, 그러나 메모리에서 스스로를 해제하지는 않습니다. 알림 메시지를 보냄으로써 그것을 발견하고 그보기가 그것을 받았다. 또한 VM 메모리 할당을 추적하려고했는데보기가 여전히 메모리에있는 것 같습니다.

저는 ARC를 사용하고 있으며 완벽하게 작동하는 다른보기에 동일한 방법이 사용되었습니다.

확실한 불 방법을 특정 뷰 컨트롤러가 해제되지 않은이 할당 해제를 무시하고 식별 뭔가를 기록하는 것입니다 수 :

+0

ResepiDetail에 포인터가있는보기를 다시 가리키는 포인터가 있습니까? –

+0

detail = nil과 같이 해제 할 때 세부 정보를 nil로 설정할 수 있습니다. – freelancer

+0

아니요. – Danialzo

답변

0

코드는 게시 된, 그래서 여기에 진행하는 방법에 대한 몇 가지 힌트를 괜찮있다 . ARC에서 여전히 수행 할 수 있습니다. super을 명시 적으로 호출하지 마십시오. 예상 한대로 로그가 표시되지 않으면 문제가있는 것입니다.

문제가 있다고 판단한 경우 문제가 유지주기가됩니다. 문제가 ResepiController의 인스턴스가 dealloc'd되지 않는 것입니다 경우에, 당신은 그것에 strong 참조를 가지고 ResepiController 클래스 외부에 대한 ...

  1. 모든 코드를 볼 필요가있다. 예를 들어 클래스가 다른 클래스의 대리인으로 등록한 경우 대표자가 strong 참조를 사용하고 있지 않은지 확인하십시오.
  2. 암시 적으로 보유한 모든 내부 블록 self. 프로그램에서 블록을 출시해야한다고 생각되는 시점에 컨트롤러에 대한 참조가있을 수있는 블록이 있습니까?
관련 문제