2012-02-13 3 views
0

touchesBegan 메소드로 UIView를 구현하고 있습니다.touchesBegan은 UIView 객체를 공개 한 후에 호출되지 않습니다.

하위 뷰 컬렉션에 추가 한 후에 릴리스하지 않고이 UIView를 만들면 모두 정상적으로 작동합니다.

하지만 훌륭한 시민이면서 하위보기를 추가 한 후에 개체를 릴리스하면 시작된 begans가 호출되지 않습니다.

삽입의 UIViewController :

내 코드입니다. OTTestResult 객체의

-(void)validateWasPushed:(id)sender 
{ 
    float nota = [testQuestions getTestResults]; 
    int ok = [testQuestions getOkNumber]; 
    int fail = [testQuestions getFailNumber]; 

    OTTestResult *result = [[OTTestResult alloc] init]; 

    [self.view addSubview:result.view]; 

    [result loadWithNumber:nota testName:[testQuestions testName] okResponses:ok failResponses:fail]; 


    [result release]; 

} 

그리고 touchesBegan 구현 :

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self.view removeFromSuperview]; 
} 

누구든지 내가 잘못 알고 OTTestResult는 상기의 UIView의 컨트롤러입니까?

감사합니다.

+0

이 컨텍스트에서 어떤 클래스가 자체입니까? 이 코드는 UIViewController의 하위 클래스에 있습니까? –

답변

2

그러나 나는 훌륭한 시민이고 하위보기에 추가 한 후에 개체를 릴리스 할 때 연락을 요구하지 않습니다.

subviews에 추가하지 않았습니다. result.view을 추가했습니다. 그런 다음 다른 사람이 보유하지 않은 result을 릴리스하고 할당을 취소합니다. 주변에 머물 필요가있는 경우 하위보기 컨트롤러를 ivar로 잡고 있어야합니다.