In questo filetto:
http://www.experts-exchange.com/Apple/Programming/Objective-C/Q_26411565.html?sfQueryTermInfo=1+10+30+setneedsdisplaiHo detto di usare
[theView setNeedsDisplay: SÌ];
nel caso dobbiate aggiornare la vista. Potete farli dal filetto principale.
Capite questo senso? Forse, non capisco le vostre domande?
Circa i filetti. Sì, tutto il funzionamento lungo in qualunque lingua, per tutto il dispositivo, dovrebbe essere lanciato in un filetto separato. In IOS potete usare i filetti e NSThread di POSIX.
biblioteca di riferimento dell'IOS. Amministrazione del filetto
http://developer.apple.com/iphone/library/documentation/cocoa/conceptual/Multithreading/CreatingThreads/CreatingThreads.htmlDirei di usare NSThread. Qui sono due lezioni private semplici:
http://www.xprogress.com/post-36-threading-tutorial-using-nsthread-in-iphone-sdk-objective-c/http://www.eigo.co.uk/Programming-threaded-processes-in-iPhone.aspxL'idea è semplice. Generate il nuovo filetto:
[detachNewThreadSelector di NSThread: toTarget
di @selector (
threadMethod): withObject di auto: zero];
Il metodo del filetto dovrebbe essere come quello:
- threadMethod (vuoto) {
*pool di NSAutoreleasePool = [[init del alloc di NSAutoreleasePool]];
//Here è il codice.
[rilascio dello stagno];
}
Se dovete fare qualcosa nel filetto principale da questo nuovo filettare:
[performSelectorOnMainThread di auto
: withObject
di @selector (
UpdateUIMethod): waitUntilDone di zero: falso];
In quel metodo (sarà denominato nel filetto principale), potete aggiornare il UI.
Potete provare:
[performSelectorOnMainThread del theView
: @selector
(setNeedsDisplay
: SÌ
) withObject: waitUntilDone del myText: NESSUN];
(Lo ho scritto appena qui senza prova, ma dà un'idea)