Как вы передаете массив через функцию в Objective-C? - PullRequest
2 голосов
/ 20 октября 2011

Мне нужна помощь. Я новичок в Objective-C и пытаюсь научиться программировать приложения iPhone в Xcode 3.0. Я пытаюсь передать свой массив через функцию, и я в замешательстве. Спасибо за помощь. Вот мой код:

#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 Ответ

1 голос
/ 20 октября 2011

Вам необходимо распаковать NSNumber, используя -intValue, например:

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