2009-07-28 4 views
0

Hier ist Beispielcode.sollen wir das Viewcontroller-Objekt freigeben, nachdem wir in den Navigationscontroller gedrängt haben?

if(MyPageViewControllerObj==nil) 
    { 
     MyPageViewController *vController = [[MyPageViewController alloc] initWithNibName:@"MyPageView" bundle:[NSBundle mainBundle]]; 
     self.MyPageViewControllerObj=vController; 
     [vController release]; 
     noOfWrongAnswers=0; 
     noOfRightAnswers=0; 
    } 
    MyPageViewControllerObj.sessionid=sessionid; 
    MyPageViewControllerObj.categoryID = categoryId; 
    MyPageViewControllerObj.flashcardIdforcount = flashcardid; 
    MyPageViewControllerObj.categoryType=categoryType; 
    MyPageViewControllerObj.indexViewControllerobj=self; 
    [self.navigationController pushViewController:MyPageViewControllerObj animated:YES]; 

brauche ich diese Zeile **** [MyPageViewControllerObj release] ****

, nachdem sie in die Navigation controller.and auch in dealloc Methode schreiben drängen ...

Antwort

3

Ja , sollten Sie Ihre MyPageViewControllerObj freigeben, wie die UINavigationController es behält. Es muss nicht in der -dealloc Methode sein.

+0

danke für Sie beantworten auch sagen Sie mir, hat diese Linie Effekte irgendetwas in dealloc Methode [Self.navigationController popViewControllerAnimated: YES]; –

+0

Wenn Sie den View-Controller öffnen, wird die Referenzzählung reduziert. Wenn es Null ist (was es wahrscheinlich sein wird), wird es automatisch freigegeben. Es ist nicht notwendig, sie direkt einer Dealloc-Methode hinzuzufügen. Ich schlage vor, dass Sie sich über das Speichermanagement von Objective C informieren. Es ist ziemlich einfach, wenn Sie den Dreh raus haben. –

Verwandte Themen