Č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ď č. 1Mali 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ť.