Sum正在返回一些模糊的值。我想做的就是在Mutable Array中获得元素之和

时间:2015-08-09 23:20:42

标签: objective-c arrays nsmutablearray literals

&安培;是的,我做了google"如何获得数组元素的总和"但是我想知道这里出了什么问题?如果我使用断点并在执行此行后看到" sum = sum +(int)A [i];" sum有一些模糊的值。

#import <Foundation/Foundation.h>

@interface MyClass : NSObject
@end
@implementation MyClass
@end

int solution(NSMutableArray *A) 
{
  int sum = 0;
  for (int i = 0; i <A.count; i ++)
  {
    NSLog(@"A.count: %ld", A.count);
    sum = sum + (int) A[i];   //A[i] has to return a value right?**strong text** 
  }
   NSLog(@"The final sum is: %d", sum);
   return sum;
}

int main(int argc, const char * argv[]) 
{
@autoreleasepool 
{
    NSMutableArray *A = [NSMutableArray arrayWithObjects: @"3",@"1",@"2",@"4",@"3", nil];
    solution(A);        
}
return 1;
}

2 个答案:

答案 0 :(得分:3)

数组中的元素是NSString个对象。您应该使用NSNumber个对象:

NSMutableArray *A = [@[@3,@1,@2,@4,@3] mutableCopy];

此外,您无法将它们作为整数投射。要从int获得NSNumber,您需要致电[A[i] intValue]。否则,您将对指针值求和。

 sum = sum + [A[i] intValue];

答案 1 :(得分:1)

您正在添加字符串的值而不是整数值。 只需更换

sum = sum + (int) A[i];

以下

sum = sum +  [A[i] integerValue];