【问题标题】:Summing an array of numbers in Objective C在Objective C中对一组数字求和
【发布时间】:2015-08-25 01:16:56
【问题描述】:

基本上。我有一个需要求和的数字数组。这是我的代码:

- (NSInteger ) sumOfIntegersInArray: (NSArray *)array {
    NSInteger sum = 0;
    for (NSNumber *num in array) {
        sum += [num intValue];
    }
    return sum;
}

由于某种原因这不起作用,但如果我NSLOG sum,那么它将打印100(这应该是总和)。为什么这不起作用?

我不断收到的错误是:

“不兼容的整数到指针的转换从结果类型为'NSInteger *'(又名'long *')的函数返回'NSInteger(又名'long');用&获取地址

(如果我让它更正我的代码为return &sum,它仍然不起作用。

【问题讨论】:

  • 为什么你没有 sum 是一个 int?
  • 请注意错误消息中的* 字符。 * 在 C 和 Objective-C 中是什么意思???
  • 您发布的代码没有问题。使用实际导致错误的代码行更新您的问题。
  • 顺便说一句 - 使用 [num integerValue],而不是 [num intValue]NSInteger
  • 对我来说似乎没问题。问题可能出在其他地方

标签: objective-c arrays sum


【解决方案1】:
- (NSInteger*) Sum {
    NSInteger sum = 0;
    for(NSNumber *num in array) {
        sum += [num intValue];
    }
    return sum;
}

我认为你是这样工作的。
你错过了返回类型

这样改

- (NSInteger) Sum {
    NSInteger sum = 0;
    for(NSNumber *num in array) {
        sum += [num intValue];
    }
    return sum;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 2019-04-05
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多