Сложите все значения из NSMutableArray - PullRequest
0 голосов
/ 15 сентября 2011

У меня есть NSMutableArray, содержащий x различных строк NSString (NSString, но только цифры без букв).Я хотел бы сложить все значения, чтобы вернуть один float или int.Я думаю, что я должен сделать это с циклом for, но я очень незнаком с циклами for .... Хорошо, я достиг этой точки:

for (NSString *a in det) 
{
   float x = [a floatValue];
   NSLog(@"%.2f",x);
}

И это возвращает все значения, подобные этому в ´NSLog`:

23.00
8.00
61.00
...

Как я могу просто добавить их сейчас?

Ответы [ 4 ]

14 голосов
/ 27 сентября 2011

Вы можете избежать зацикливания и вместо этого использовать key value coding и получить общее

    NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"1.1", @"2.2", @"3.1", nil];
    NSNumber *sum = [arr valueForKeyPath:@"@sum.floatValue"];

Переменная сумма будет 6,4.

5 голосов
/ 15 сентября 2011

Попробуйте это:

float total = 0;
for(NSString *str in det)
{
    total += [str floatValue];
}
3 голосов
/ 15 сентября 2011

Вот код для for-in, если вы хотите немного сэкономить при наборе текста. Для этих типов сценариев предпочтительно использовать быстрое перечисление со структурами данных, которые его поддерживают.

float result = 0.0;
for(NSString *i in nsArray)
{
    result += [i floatValue];
}
2 голосов
/ 15 сентября 2011
int result = 0;

for(int i=0;i<[array count];i++) 
     result += [[array objectAtIndex:i] intValue];

если вам нужно вернуть число с плавающей точкой, просто определите результат как число с плавающей точкой и используйте floatValue вместо intValue

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...