Ponedjeljak 25 listopad, 2010

iPhone: problem obrade velike količine podataka

Ako ste stvorili složenije aplikacije, Apple mobilne platforme, posebno kada se koristi u klasi prostora CoreData, tu je problem "freez" aplikacija. Prilikom izvršenja više upita u kratkom vremenu u glavnom aplikacija nit, tu je situacija u kojoj pogled ne osvježava. Drugim riječima, ako programer želi ažurirati traku napretka za primjer, ima za obavljanje složenijih poslova u dodatnoj niti riješiti na glavnu temu i biti u mogućnosti da biste vidjeli ažuriranja.
I dok stvara novu temu, svodi se na jednostavan kod:

 / * Red zadataka - init (autorelease) * /
 NSOperationQueue red * = [[NSOperationQueue alloc] init];

 / * Otvori zadatke, koje dodate na red, koji naziva "zadatak" u zasebnoj niti * /
 NSInvocationOperation * rad = [[NSInvocationOperation alloc] initWithTarget: self odabir: @ izbornik (zadatak) objekt: nula];

 / * Dodavanje zadatka na čekanju (navoj) * /
 [Red addOperation: operacija];

 [Operacija release];
 [Red release];

U slučaju vrlo složene operacije s CoreData objekata, pogotovo kada postoje mnogi takvi objekti su dodani u bazu podataka i izvodi metodom NSManagedContext spremanja, može biti slučaj da nešto pođe po zlu. Kako vaša aplikacija ponaša kada je u pitanju ove situacije u glavnoj temi? Odgovor nije jasno, jer ovisi o vrlo važna stvar. Naime, ovisno o tome NSManagedContext nastao u glavnom thread ili novonastale nakon pokrića. U prvom slučaju, program prestaje reagirati, ali ne prestati s radom! Drugim riječima, aplikacija će pokušati napraviti zapisnik o tome, ali bez uspjeha. Rješenje ovog problema je stvoriti novi objekt u slučaju metoda NSManagedContext, tako da, čak i ako neke od operacija ne uspije, program će se nastaviti obavljati.

Za više informacija pogledajte dokumentaciju .

Link na sliku promiče .


Povezani zapisi

Kategorije: iPhone / mobilne / vodiče
Možete udarac bilo koji reakcija to ovaj ulaz preko feed RSS 2.0 . Također možete napisati svoje komentare , ili na link na ovaj post na vašoj stranici.
  • Obraz CAPTCHY
    Osvježi sliku
    *

    Spam zaštita od WP-SpamFree