2011-11-09 36 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

相关问题