C'est le gros problème. Jusqu'à présent, j'ai résolu en utilisant des tampons de taille fixe temp et détacher un thread pour chaque tampon quand il est plein. Le thread va enregistrer le contenu du tampon dans la mémoire Flash. Lancer des fils lourds, car chaque thread accède au flash, ralentit l'appareil et rafraîchit la vue de la caméra. Les tampons ne peuvent pas être grands, car vous obtiendrez un avertissement de mémoire, et ne peut pas être petit car vous ferez geler l'appareil, à cause de trop de threads et d'accès à la mémoire flash à la fois. La solution réside dans la taille du tampon d'équilibrage et le nombre de threads.
Je n'ai pas déjà essayé d'utiliser sqlite3 db pour stocker des images de données binaires, mais je ne sais pas si ce sera une meilleure solution. PS: pour accélérer l'appel des méthodes de classe, évitez la solution commune [méthode objet] en raison du fonctionnement de l'appel de méthode, mais essayez d'obtenir et d'enregistrer l'adresse de la méthode comme indiqué ci-dessous.
De Apple ObjC doc:
« L'exemple ci-dessous montre comment la procédure qui met en œuvre la setFilled: méthode pourrait être appelé:
void (*setter)(id, SEL, BOOL);
int i;
setter = (void (*)(id, SEL, BOOL))[target methodForSelector:@selector(setFilled:)];
for (i = 0; i < 1000, i++)
setter(targetList[i], @selector(setFilled:), YES); "
Marco