2012-05-03 1 views
1

У меня есть массив, который имеет:NSMutableArray к NSNumber

12, "+", 56, "+", "", "(", 56, "+", 65, ")"

теперь давайте сказать, что я хочу, чтобы добавить

[NSMutableArray objectAtIndex: 1] + [NSMutableArray objectAtIndex: 3] 

я знаю, что мне нужно, чтобы преобразовать части массива в NSNumber, но Я не могу найти ничего, что говорит о том, как это сделать, если это возможно. Также я должен добавить, что числа вводятся как NSString, и это изменение будет очень болезненным и может быть сделано в качестве последнего средства.

ответ

2

Вы можете получить NSNumber из строки таким образом:

NSString *str = @"222"; 
NSNumber *num = [NSNumber numberWithInt:[str intValue]]; 

Так, чтобы конвертировать из массива на NSNumber:

[NSNumber numberWithInt:[[NSMutableArray objectAtIndex: 1] intValue]]; 

Но имейте в виду, что вы не можете напрямую добавить два NSNumber объекты вместе, она должна была бы быть что-то вроде этого:

NSNumber *sum = [NSNumber numberWithInt:([one intValue] + [two intValue])]; 

И если вы в конечном итоге с помощью значений с плавающей запятой , Вы можете просто заменить intValue с floatValue

+0

благодаря так это именно то, что мне нужно! – Osman

1

вы можете сделать это, как

NSNumber *number = (NSNumber*)[NSMutableArray objectAtIndex:1];