Comment puis-je passer un tableau C à une fonction objective-C?

Je ne connais pas bien C. Comment puis-je passer un tableau C à une fonction Objective-C?

J’ai en fait besoin d’un exemple de fonction de classe convertissant NSArray en tableaux C. C’est ce que j’ai jusqu’à présent:

+ (NSArray *)convertArray:(NSSsortingng*)array { //I don't think this is correct: the argument is just a NSSsortingng parameter and not an array NSMutableArray * targetArray = [NSMutableArray array]; for (i = 0; i < SIZE; i++) //SIZE: I dunno how to get the size of a C array. { [targetArray addObject: [NSString stringWithString:array[i]]; } return targetArray; } 

Il y a plusieurs façons.

Si la taille de votre tableau est fixée au moment de la compilation, vous pouvez utiliser le modificateur static C99:

 -(void) doSomething:(NSSsortingng *[static 10]) arg { } 

Sinon, vous devez le transmettre en deux arguments distincts. L’un en tant que pointeur sur le premier élément et le second en tant que longueur:

 -(void) doSomething:(NSSsortingng **) arg count:(size_t) count { } 

Vous pouvez maintenant accéder à vos variables comme à tout autre tableau que vous pourriez avoir.

Comme vous traitez avec un tableau C d’objectives objective-c, vous pouvez utiliser le constructeur intégré de NSArray pour transformer un tableau C en un tableau NSArray :

 NSArray *result = [NSArray arrayWithObjects:arg count:count];