/ / Ako zrušiť už vypálený neopakujúci sa NSTimer? - iphone, ios, nstimer, zneplatniť

Ako zrušiť už vypálené neopakujúce sa NSTimer? - iphone, ios, nstimer, neplatné

Čo chcem:
1) 4 puzzle obrázky v UIImageViews, ktoré môžempohybovať 2) po vyriešení hádanky chcem namiesto hádaniek zobraziť 2 obrázky: prvý hneď po vyriešení hádaniek, druhý 2 sekundy po prvom obrázku ...

Čo mám:
1) ak vyriešite naozaj rýchlo jednu hádanku za druhou, môžete spadnúť do intervalu NSTimer, ktorý zamení tieto 2 obrázky príliš rýchlo, napríklad po 0,1 s, nie 2,0

Existuje nejaký spôsob, ako vyriešiť NSTimer, nezasahovať do už vyhodeného?

Riešenie(?): Uvažoval som o blokovaní interakcie, takže sa objaví druhý obrázok, ale zdá sa to ako slabé riešenie.

odpovede:

2 pre odpoveď č. 1

Mali by ste si ponechať odkaz na tento časovač (ako vlastnosť alebo ako iVar).

Potom jednoducho zavolajte [myTimer invalidate]; myTimer = nil; ked to chces zrusit.

EDIT:

Ak nedodržíte odkaz na svoj časovač (ak ho vytvárate úplne od začiatku v bloku kódu), vždy existuje nebezpečenstvo vytvorenia viacerých inštancií ...


1 pre odpoveď č. 2

Napíšte nastavovaciu metódu, Like this. Kedykoľvek potrebujete zrušiť časovač

self.myTimer = nil;

- (void)setMyTimer:(NSTimer *)inTimer
{
if (inTimer != mMyTimer)
{
[mMyTimer invalidate];
[mMyTimer release];
mMyTimer = [inTimer retain];
}
}

Dúfam, že to pre vás bude fungovať.