No hi ha qui entengui el NSRunLoop
No sé vosaltres, però vull crear un NSThread una mica complex (que no executi una cosa i surti) i em consta d'entendre el NSRunLoop. 
Tampoc sé com puc tenir les instàncies dels NSThread que creo (amb el Mac OS X 10.4) per poder-les controlar.
Ni tampoc sé si realment es pot controlar l'execució d'un NSThread. Aturar-lo i tornar-lo a posar en marxa... Sembla que només puc controlar-ne la prioritat dins el sistema operatiu amb el mètode "setThreadPriority:" 
Uf, potser la setmana que ve ho veuré millor. 
03 octubre 2008 18:39
Hola Xin, es curiós però tinc un dubte semblant, al menys en el tema... Estic fent un joc i tinc un dubte. El cas es que utilitzo UIView animations i NSTimer per crear animacions i controlar el desenvolupament del joc. El problema es que voldria poder aturar el joc (pausa) i després continuar quan vulgui. El problema es que puc anular un NSTimer, no aturar-lo durant un temps. M'imagino que agafant la data d'inici i la de anulació, amb una resta o soluciono, però en el cas del UIView animation es mes difícil perquè hi poden haver-hi moltes variables.
El cas es que investigant he intuït que la resposta pot ser amb els threads. Per el que entenc, un thread es com un fil de càlculs, i que pots fer diferents fils i que aquests treballin en paral·lel, no? El que he vist també es que aquest fils es poden aturar amb el mètode sleep i posant molt de temps, i reprendre posant un sleep amb un temps ínfim. Així he pensat que potser em podria servir. El que no sé es què es pot posar en un fil, i si realment ho he entès, com es treballa amb diferents fils? I si no es així, em pot servir d'alguna altra manera?
El que m'aniria bé es un petit exemple de com s'utilitzen. Podries posar un exemple?, es que no se ni per on començar, perquè m'he llegit la documentació i la lògica es nega a entrar en el meu cap.
05 octubre 2008 18:59
L'UIView Animations suposo que és el Core Animation. Això has de pensar que funciona en un fil a part, és a dir que no ho executa el propi sistema operatiu. És a dir, que tampoc ho podràs controlar amb fils.
Els jocs que hi intervé el temps, s'han de fer amb Timer per força, és la única manera que tens per controlar velocitats i altres coses. Només has d'estar segur que el joc no et saturi la màquina, sinó, els timers també s'executen tard. Però això suposo que ja ho tens clar.
Per aturar un joc ho has de fer com ja ho fas. No hi ha volta de full. Un Thread no et solucionarà res.
T'anava a dir que el Thread no es pot aturar, però sembla que a la versió 10.5 hi han ficat un mètode sleep, però no estic segur que el puguis controlar perquè són mètodes de classe i no pots tornar-los a ficar en marxa quan tu vulguis.
És una mica difícil, i el Thread a Cocoa és una mica simple. Sembla que a la versió 10.5 és una mica més complex. Però per la 10.4 era realment simple. Un fil és executar una funció en paral·lel amb el procés principal. Si t'interessa que respongui a esdeveniment et caldrà utilitzar la classe NSRunLoop.
Bé, ho deixo perquè em sembla que m'embolico tot sol. 
05 octubre 2008 22:01
