Mandag 25 oktober, 2010

iPhone: problemet med håndtering af store mængder data

Hvis du opretter mere komplekse applikationer, Apples mobile platform, især når de anvendes i en klasse af rum CoreData, der er et problem "Freez" applikationer. Når du udfører flere forespørgsler i løbet af kort tid i hovedsagen tråden, er der en situation, hvor det vurderes ikke opdateres. Med andre ord, hvis programmøren ønsker at opdatere en statuslinje for eksempel har til at udføre mere komplekse operationer i en ekstra tråd for at losse den røde tråd og være i stand til at se opdateringen.
Og mens du opretter en ny tråd, kommer ned til en simpel kode:

 / * Kø af opgaver - init (autorelease) * /
 NSOperationQueue * kø = [[NSOperationQueue Alloc] init];

 / * Opret opgaver, der føjer til køen, som kalder den "opgave" i en separat tråd * /
 NSInvocationOperation * drift = [[NSInvocationOperation Alloc] initWithTarget: self vælgeren: @ vælgeren (opgave) objekt: nul];

 / * Tilføj opgave at køen (tråd) * /
 [Queue addOperation: drift];

 [Operation frigivelse];
 [Queue release];

I tilfælde af meget komplekse operationer med CoreData objekter, især når der er mange sådanne genstande føjet til databasen, og udførte NSManagedContext save metoden, kan være tilfældet, at noget går galt. Hvordan din ansøgning opfører sig, når det kommer til denne situation i den røde tråd? Svaret er ikke klart, fordi afhænger af en meget vigtig ting. Nemlig, afhængigt af om NSManagedContext blev oprettet inden for den røde tråd eller en nyoprettet stilling sikkerhed. I det første tilfælde, stopper programmet med at reagere, men det forhindrede ikke kører! Med andre ord, vil programmet forsøge at lave en plade til den effekt, men til ingen nytte. Løsningen på dette problem er at skabe et nyt objekt i fremgangsmåden NSManagedContext tilfælde, således at selv om nogle af de operationer svigter, vil programmet fortsætte med at udføre.

For mere information, se dokumentationen .

Link til billede fremmer .


Relaterede poster

Kategorier: iPhone / mobil / guider
Du kan følge alle svar til dette indlæg via foderet RSS 2,0 . Du kan også skrive dine egne kommentarer , eller at linke til dette indlæg på din side.
  • Obraz CAPTCHY
    Opdater billede
    *

    Spam Beskyttelse af WP-SpamFree