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

Дает мне четыре ошибки:Возможны ли c массивы поплавков и булевых?

Incompatible type for argument 1 of 'initWithObjects:'

Invalid initializer

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

Который имеет смысл, поскольку буи не являются объектами, но как я могу сделать массив поплавки , Мне тоже нужен BOOL.

+0

Отметьте этот ответ: http://stackoverflow.com/questions/1519115/initialize-nsarray-with-floats – drharris

ответ

6

Если вам нужен массив чисто в собственном коде, вы можете использовать обычный массив C:

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

Если вам нужно a NSArray* для чего-то, вам нужно обернуть каждое значение в NSNumber.

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

Вы можете использовать numberWithBool аналогично для BOOLS.

+0

Спасибо - я использовал массив C, как вы предполагали, и использовал его, обратившись к 'chemConstant [i]' где 'i' является индексом в моем' for loop', строящем мои объекты 'Chemical'. – Steve

0

Вы хотите NSNumber, который может содержать поплавки, целые числа и т.д.

Смежные вопросы