1
在這裏,我有這樣的:NSTimer的問題:錯誤的邏輯?
void start() { for (id i in something) { [i start]; } }
void finish() { for (id i in something) { [i finish]; } }
static NSTimer *timer = nil;
@implementation aClass
- (void)start {
if (!timer) timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(change) userInfo:nil repeats:YES];
}
- (void)change { /* ... */ }
- (void)finish { [timer invalidate]; }
@end
請注意,我不能使用實例變量,正如你可以假設有很多有-start
稱爲aClass
實例。
我想我在這裏面對一個我自己的邏輯問題,因爲只有一個實例(第一個調用-start
)得到-change
同時被調用。這對其他實例不是問題,因爲如果我從something
陣列中刪除第一個對象,那麼第二個對象將會正常,而其他對象將面臨問題。
我只是犯了一些明顯的錯誤? (我認爲我;試圖對每個實例使用相同的全局...)。我該如何解決這個問題?
同樣,我**不能**使用高德。 (如果可以的話,這個答案雖然會解決我的問題。) – Matoe
爲什麼不呢?您可以使用關聯的對象。 –
我也想到了這一點,而且我有幾個問題。我會再試一次,謝謝! – Matoe