NSMutableArray è per oggetti. Per semplici vecchi tipi di dati, usa NSMutableData e buoni vecchi tipi di puntatori. È un buffer di memoria non strutturato ridimensionabile, proprio quello che ti serve per un vettore di POD. Per quanto riguarda la sicurezza del tipo statico, l'obiettivo C non ti dà comunque nulla.
EDIT:
Creazione di un oggetto dati mutabile con una dimensione iniziale n struct CGPoint:
NSMutableData *Data = [NSMutableData dataWithLength: n*sizeof(CGPoint)];
Posizionando un CGPoint pt nel buffer nella posizione i-esima:
CGPoint pt;
NSRange r = {i*sizeof(CGPoint), sizeof(CGPoint)};
[Data replaceBytesInRange: r withBytes:&pt];
Recupero di un CGPoint dalla i-esima posizione in pt:
CGPoint pt;
NSRange r = {i*sizeof(CGPoint), sizeof(CGPoint)};
[Data getBytes: &pt range:r];
crescente matrice per n oggetti:
[Data increaseLengthBy:n*sizeof(CGPoint)];
speranza che la ricopre. Vedere il riferimento NSMutableData e tenere presente che tutti i metodi NSData si applicano a esso.
fonte
2010-03-10 20:30:52
Ciao non devi allocare una dimensione per l'array? fa anche addObject ridimensionare l'array se necessario? –
@ jesse.rj - 'NSMutableArray' si ridimensiona automaticamente. –
grazie mille! –