2010-07-24 3 views
1
NSArray chemConstantArray = [[NSArray alloc] initWithObjects:0.0021400, 0.0012840, 0.0010700, nil]; 

me donne quatre erreurs:objectif c tableaux de flottants et de booléens possibles?

Incompatible type for argument 1 of 'initWithObjects:'

Invalid initializer

Statically allocated instance of Objective-C class 'NSArray' x 2

Ce qui est logique, car les flotteurs ne sont pas des objets, mais comment puis-je faire un tableau de flotteurs . J'ai besoin d'un pour BOOLs aussi.

+0

Jetez un coup d'œil à cette réponse: http://stackoverflow.com/questions/1519115/initialize-nsarray-with-floats – drharris

Répondre

6

Si vous avez besoin d'un tableau purement au sein de votre propre code, vous pouvez utiliser un réseau régulier de C:

float chemConstantArray[] = {0.0021400, 0.0012840, 0.0010700}; 

Si vous avez besoin un NSArray* pour quelque chose, vous devez envelopper chaque valeur dans un NSNumber.

NSArray *chemConstantArray = [[NSArray alloc] initWithObjects: 
    [NSNumber numberWithFloat: 0.0021400], 
    [NSNumber numberWithFloat: 0.0012840], 
    [NSNumber numberWithFloat: 0.0010700], 
    nil]; 

Vous pouvez utiliser numberWithBool même pour BOOL.

+0

Merci - J'ai utilisé un tableau C comme vous l'avez suggéré et je l'ai utilisé en me reportant à 'chemConstant [i]' où 'i' est l'index dans mon' for loop' qui construit mes objets 'Chemical'. – Steve

0

Vous voulez NSNumber, qui peut contenir des flotteurs, des entiers, etc.