9

आईफोन में मेमोरी प्रबंधन एक बहुत ही महत्वपूर्ण मुद्दा है। तो मैं एक बहुत ही सामान्य सवाल पूछ रहा हूं। किसी अन्य वर्ग के दृश्य नियंत्रक को कॉल करने के दो तरीके हैं।व्यू कंट्रोलर को कैसे दबाएं (नियंत्रक देखें)?

मार्ग 1:

AnotherClassViewController *viewController = [[[AnotherClassViewController alloc] initWithNibName:@"AnotherClassView" bundle:nil] autorelease]; 

[self.navigationController pushViewController:viewController animated:YES]; 

रास्ता 2:

#import "AnotherClassViewController.h" 

    @interface ThisClassViewController : UIViewController{ 

     AnotherClassViewController *myViewController; 

    } 

    @property (nonatomic, retain) AnotherClassViewController *myViewController; 

    @end 

    @implementation ThisClassViewController 

    @synthesize myViewController; 

    - (void) pushAnotherViewController{ 

    if(self.myViewController == nil){ 

    AnotherClassViewController *tempViewController = [[AnotherClassViewController alloc] initWithNibName:@"AnotherClassView" bundle:nil]; 

    self.myViewController = tempViewController; 

    [tempViewController release]; 
    } 
    [self.navigationController pushViewController:myViewController animated:YES]; 
    } 

- (void)dealloc{ 
self.myViewController = nil; 
} 
@end 

तो स्पष्ट सवाल जो सबसे अच्छा तरीका है अन्य वर्ग के ViewController कॉल करने के लिए है, है? वे 1 या वे 2?

सुझाव और टिप्पणियां खुली आमंत्रित हैं।

कृपया टिप्पणी करें और वोट दें।

उत्तर

7

वे 1 सरल है।

वे 2 पहले नियंत्रक को धक्का दृश्य नियंत्रक का संदर्भ रखने देता है। यदि आपको उस संदर्भ की आवश्यकता है, तो यह उपयोगी होगा।

यहां कोई स्पष्ट जवाब नहीं है। यह आपकी जरूरतों पर निर्भर करता है। सामान्य नियम, ज़ाहिर है, कोड को यथासंभव सरल बनाना है, लेकिन कोई आसान नहीं है।

19

हम्म ... इसे आसान बनाने के लिए, क्यों नहीं बस:

MyViewController* viewController = [[MyViewController alloc] init]; 

[self.navigationController pushViewController:viewController animated:YES]; 
[viewController release]; 
संबंधित मुद्दे