2011-11-09 61 views
1

類確實有如何停止創建對象實例時,它不需要

-(void) trackByPage : (NSString*) pageName { 

     TrackPage *track_p; 
      = [[TrackPage alloc] init]; 
      track_p.page1 = @"welcome"; 
      track_p.page2= self.String1; 
      [track_p release]; 
    } 

我從控制器類訪問該方法。

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    TrackPageMeasurement *trackPage_Measurement = [[TrackPageMeasurement alloc]init]; 
    [trackPage_Measurement trackByPage:@"Msg"]; 
    [trackPage_Measurement release]; 
} 

- (void)selectedDataValue { 


    TrackPageMeasurement *trackPage_Measurement = [[TrackPageMeasurement alloc]init]; 
    [trackPage_Measurement trackByPage:@"DataValue"]; 
    [trackPage_Measurement release]; 
} 

我正在通過另一個班級訪問。 trackByPage。通過傳遞字符串..

每當我訪問每次對象實例創建如何停止這些事情。

回答

0

如何

TrackPage *track_p; 

if(track_p==nil) 
{ 
     track_p= [[TrackPage alloc] init]; 
     track_p.page1 = @"welcome"; 
     track_p.page2= self.String1; 

} 

[track_p release]; 
+0

創造一個overrelease,如果你把發行條件裏面,有一個在條件沒有意義的。 –

+0

除了過度釋放之外,它會創建一個懸掛指針,以後會導致地獄。 – bbum

2

selectedDataValue不應該被調用[super viewDidLoad];的代碼並不完全激發了我的信心;它在我看來更像是想要檢索某個跟蹤對象,而不是每次都創建一個新對象。你知道單身是什麼嗎?

使用單看起來更像:

TrackPage *track_p = [TrackPage instance]; 
track_p.page1 = @"welcome"; 
track_p.page2 = self.String1; 
+0

yeap Paul Lynch我同意這一點。它的需要,我複製粘貼使一些錯誤感謝指出它。 – user905582

+0

我正在跟蹤OminatureService。 – user905582

+0

我知道單身人士.....希望我需要在單身人士中實現這件事。 – user905582

相關問題