Comment créer un tableau d'octets à partir de NSData

S'il vous plaît tout un guide moi comment créer un tableau de bytes de nsdata voici mon code pour créer nsdata

NSData* data = UIImagePNGRepresentation(img); 

Si vous voulez seulement les lire, il y a une méthode vraiment simple:

 unsigned char *bytes = [data bytes]; 

Si vous voulez éditer datatables, il y a une méthode sur NSData qui fait cela .

 // Make your array to hold the bytes NSUInteger length = [data length]; unsigned char *bytes = malloc( length * sizeof(unsigned char) ); // Get the data [data getBytes:bytes length:length]; 

NB N'oubliez pas – si vous copyz datatables, vous devez également appeler free(bytes) à un moment donné;)

Voici le moyen le plus rapide (mais assez dangereux) d'get un tableau:

 unsigned char *bytesArray = data.bytes; NSUInteger lengthOfBytesArray = data.length; 

Avant d'essayer d'get l'octet 100, vous devriez vérifier lengthOfBytesArray comme:

 if (lengthOfBytesArray > 100 + 1) { unsigned char byteWithOffset100 = bytesArray[100]; } 

Et une autre façon sûre et plus objective:

 - (NSArray*) arrayOfBytesFromData:(NSData*) data { if (data.length > 0) { NSMutableArray *array = [NSMutableArray arrayWithCapacity:data.length]; NSUInteger i = 0; for (i = 0; i < data.length; i++) { unsigned char byteFromArray = data.bytes[i]; [array addObject:[NSValue valueWithBytes:&byteFromArray objCType:@encode(unsigned char)]]; } return [NSArray arrayWithArray:array]; } return nil; }