2011-02-02 4 views
3

В моем iPhone, применяя ниже код, который я могу получить значение «я»Как конвертировать NSArray для целых значений

NSMutableArray *Array = [NSMutableArray arrayWithCapacity:100]; 

for (NSUInteger i = 0; i < 10; i++) {   
    id a = [NSDecimalNumber numberWithDouble:i]; 
    [Array addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:a, @"a", nil]]; 
} 

Но если я хочу, чтобы получить значение из массива, как в качестве примера

NSArray * numberArray = [[NSArray alloc] initWithObjects:@"0.1",@"0.2",@"0.5",nil]; 

, а затем, если я хочу, чтобы использовать его в качестве

NSMutableArray *Array = [NSMutableArray arrayWithCapacity:100]; 

for (NSUInteger i = 0; i < 10; i++) {   
    id a = [NSDecimalNumber numberWithDouble:[numberArray objectAtIndex:i]]; 
    [Array addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:a, @"a", nil]]; 
} 

Как я могу это сделать?

ответ

1

Таким образом, вы начать с этим массивом, содержание которого состоит из NSString объектов (@ «0,1» является строкой):

NSArray * numberArray = [[NSArray alloc] initWithObjects:@"0.1",@"0.2",@"0.5",nil]; 

можно сканировать каждый элемент с помощью этого цикла:

for(NSString *strNum in numberArray) { 
    float number = [strNum floatValue]; 
    NSLog(@"Number: %f",float); 
} 

преобразование строки в float возможно благодаря методу floatValue()NSString.

Вы можете использовать doubleValue, longLongValue, integerValue для других типов. Эти методы возвратят 0, если не задано допустимое числовое представление со строкой.

+0

Спасибо за ответ – ios

6

Я действительно не понимаю, но я постараюсь вам помочь.

Если вы хотите хранить целые числа в NSArray использовать этот код, чтобы установить и получить их:

// Set 
NSArray *yourArray = [[NSArray alloc] initWithObjects:[NSNumber numberWithInt:1], [NSNumber numberWithInt:2], [NSNumber numberWithInt:3],nil]; 

// Get 
int currentNumber; 
for(int i=0; i<[yourArray count]; i++) 
{ 
    currentNumber = [((NSNumber*)[yourArray objectAtIndex:i]) intValue]; 
} 
+0

Не забывайте, что -initWithObjects требует нулевого терминатора ... –

+0

Да, спасибо! Отредактировано – MathieuF

+0

@Mark Adams, Спасибо за ответ – ios