UIView를 툴바로 서브 클래 싱하고 모든 종류의 버튼과 다른 뷰를 클래스에 추가했습니다.iOS 앱을 호출하는 호출 메소드가 충돌합니다.
@interface GridViewController : UIViewController <UIWebViewDelegate, UIScrollViewDelegate> {
Toolbar *toolbar;
}
@property (retain) Toolbar *toolbar;
및 구현에 나는이있다 : : 이제 내의 ViewController 헤더에 내가 이것을 가지고 내가 분석 실행하면, 지금
@synthesize toolbar;
- (void)viewDidLoad {
[super viewDidLoad];
CGRect toolbarRect = CGRectMake(0, 0, 1024, 40);
self.toolbar = [[Toolbar alloc] initWithFrame:toolbarRect];
[self.view addSubview:toolbar];
}
- (void) dealloc {
[toolbar release];
[super dealloc];
}
를, 그것은 기본적으로 내가 메모리 누수의 가능성을 가지고 있다고 말한다. [툴바 릴리스]를 추가하면; addSubView : toolbar를 호출 한 직후, ViewController를 팝업 할 때 일반적으로 하위 뷰를 추가 할 때 앱이 충돌합니다.
내가 뭘 잘못하고 있니? 나는 메모리 관리에 관한 모든 것을 읽으려고 노력했다. 그리고 그에 따라 당신은 항상 allocate/copy/retain 등등을 놓아서/autorelease해야만한다. 만약 내가 나의 코드를 보면 헤더의 인스턴스 변수를 유지할 것이다. 그것을 구현에 할당하므로 보유 개수가 +2가되어야하므로 두 번 릴리스해야하지만, 오해가있는 것 같습니다. 어떤 도움이라도 대단히 감사합니다. 내가 사고를 말할 때
,이 얻을 : 엑스 코드의 일시 정지 및 EXC_BAD_ACCESS가 main.m에서이 라인
int retVal = UIApplicationMain(argc, argv, nil, nil);
는 콘솔에 나는이 얻을 수 있다고 말한다 :
modifying layer that is being finalized - 0x60895f0
나에게 참조 횟수는 +3이어야합니다. 하나는 alloc, 다른 하나는 self.property에 저장하고 다른 하나는 addSubview에 보유합니다. 당신은 addSubview 직후에 릴리스 진술을 추가 할 때 팝 중에 충돌했다, 당신은이 오류의 스택 추적을 게시 할 수 있습니까? – Saran
질문에 충돌 정보가 추가되었습니다. – margusholland
좀비가있는 인스 트루먼 트에서 앱을 실행하는 것은 어떻습니까? 그러면 이미 액세스 한 객체를 식별하는 데 도움이됩니다. – Saran