如何通过Objective-C中的函数传递数组?

时间:2011-10-20 00:42:56

标签: objective-c arrays function integer nsnumber

我需要一些帮助。我是Objective-C的新手,并试图学习如何在Xcode 3.0中编写iPhone应用程序。 我试图通过一个函数传递我的数组,我很困惑。谢谢您的帮助。 这是我的代码:

#import <Foundation/Foundation.h>

void add(int x) {
    NSLog(@"%i + 2 = %i", x, x + 2);
}


int main (int argc, const char * argv[]) {

 NSNumber *arrayNumber = [[NSNumber alloc] initWithInt:5];
 NSNumber *arrayNumber2 = [[NSNumber alloc] initWithInt:9];

 NSMutableArray *arrayNumbers = [[NSMutableArray alloc] initWithCapacity:1];

 [arrayNumbers addObject:arrayNumber];
 [arrayNumbers addObject:arrayNumber2];



 NSLog(@"object at index 0 = %i", [[arrayNumbers objectAtIndex:0] intValue]);
 NSLog(@"object at index 1 = %i", [[arrayNumbers objectAtIndex:1] intValue]);



for(NSNumber *answer in arrayNumbers) {
    add();
}


return 0;
}

我对使用add()的部分括号中的内容感到困惑:

for(NSNumber *answer in arrayNumbers) {
    add();
}

1 个答案:

答案 0 :(得分:1)

您需要使用-intValue取消装箱NSNumber,如下所示:

for(NSNumber *answer in arrayNumbers) {
    add([answer intValue]);
}