2010-07-12 75 views
1

如果我想創建一個有三個實例變量和方法,如的NSTimer分配的財產

NSInteger seconds; 
    NSInteger minutes; 
    NSTimer *timer; 


- (void)setMinutes:(NSInteger)m; 
- (void)setSeconds:(NSInteger)s; 
- (NSInteger)minutes; 
- (NSInteger)seconds; 

我要的是初始化的NSTimer對象,並將它與那些分/秒倒計時的簡單類。但是我不確定如何初始化定時器,並在需要時釋放它(如果我有多個定時器的話)。我知道如何使用該方法:

[NSTimer scheduledTimerWithTimeInterval:1.0 
           target:self 
           selector:@selector(doTimer:) 
           userInfo:nil 
           repeats:YES]; 

我沒有看到NSTimer需要「alloc」的例子,或者如果它需要被釋放以及。

回答

2

scheduledTimerWithTimeInterval返回NSTimer的實例。只需使用性能和覆蓋二傳手無效定時器

NSTimer *timer; 

@property (nonatomic, retain) NSTimer *timer; 
- (void)setTimer:(NSTimer *)t; 



- (void)setTimer:(NSTimer *)t { 
    if (timer) { 
     [timer invalidate]; 
     [timer release]; 
     timer = nil; 
    } 

    timer = [t retain]; 
} 

她,你有一個指針來使用self.timer計時器,當你設置self.timer = newTimer,它保留了新的,廢止及釋放舊的。

重要的是要注意,你的setter期望輸入計時器是一個autoreleased副本。如果你打算使用你已經使用的NSTimer scheduledTimerWithTimeInterval方法,這將會很好。