Pondelok 25.říjen 2010

iPhone: Problém spracovanie veľkého množstva dát

Ak máte vytvárať zložitejšie aplikácie, Apple mobilné platformy, obzvlášť keď použitý v triede priestoru Coredo, je problém "FREEZ" aplikácie. Pri vykonávaní viacerých otázok v krátkom čase v hlavnom aplikácie vlákno, tam je situácia, v ktorej je pohľad nie je aktualizovaný. Inými slovami, ak programátor chce aktualizovať progress bar napríklad musí vykonávať zložitejšie operácie v ďalšom závitom zložiť hlavné vlákno a musí byť schopný zobraziť aktualizácie.
A pri vytváraní novej vlákno, príde na jednoduchý kód:

 / * Fronta úloh - init (autorelease) * /
 NSOperationQueue * fronta = [[NSOperationQueue alloc] init];

 / * Vytvorenie úloh, ktoré sa pridávajú do fronty, ktoré označuje za "úlohu" v samostatnom vlákne * /
 NSInvocationOperation * operácie = [[NSInvocationOperation alloc] initWithTarget: vlastné voliča: @ volič (úloha), objekt: nil];

 / * Pridať úlohu do fronty (závit) * /
 [Fronta addOperation: prevádzka];

 [Operácie správa];
 [Fronty správa];

V prípade veľmi zložitých operácií s objektmi Coredo, zvlášť keď existuje veľa takých objektov sú pridané do databázy a vykonali NSManagedContext ukladanie metódu, môže byť prípad, že sa niečo pokazí. Ako sa vaše aplikácie chová, pokiaľ ide o túto situáciu v hlavnom vlákne? Odpoveď nie je jasné, pretože závisí na veľmi dôležitú vec. A to v závislosti na tom, či NSManagedContext bol vytvorený v rámci hlavnej niťou alebo novo vytvorené po zaistení. V prvom prípade aplikácie prestane reagovať, ale nezastavil beží! Inými slovami, aplikácia sa snažiť, aby záznam o tom, ale márne. Riešenie tohto problému je vytvoriť nový objekt v prípade metódy NSManagedContext, takže aj keď niektoré operácie nepodarí, aplikácia bude ďalej hrať.

Ďalšie informácie nájdete v dokumentácii .

Odkaz na obrázok podporuje .


Súvisiace položky

Kategória: iPhone / mobilné / sprievodca
Môžete sledovať všetky reakcie na tento vstup prostredníctvom krmiva RSS 2.0 . Môžete tiež napísať svoj ​​komentár , alebo odkazovať na tento príspevok na vašej stránke.
  • Obraz CAPTCHY
    Obnoviť obrázok
    *

    Ochrana proti spamu by WP-SpamFree