Objective-C編程語言不允許返回整個數(shù)組作為參數(shù)傳遞給函數(shù)。但是,您可以返回一個指針到一個數(shù)組中沒有索引指定數(shù)組的名字。將在下一章節(jié)中學習指針,這樣就可以跳過本章,直到你明白 Objective-C中的指針的概念。
如果想從一個函數(shù)返回一維數(shù)組,就必須聲明一個函數(shù)返回一個指針在下面的例子:
int * myFunction() { . . . }
第二點要記住的是Objective-C中不提倡的地址返回一個局部變量在函數(shù)之外,所以必須將局部變量定義為靜態(tài)變量。
現(xiàn)在,考慮下面的函數(shù),這將產(chǎn)生10個隨機數(shù),并將其退回使用數(shù)組,調(diào)用這個函數(shù)如下:
#import <Foundation/Foundation.h> @interface SampleClass:NSObject - (int *) getRandom; @end @implementation SampleClass /* function to generate and return random numbers */ - (int *) getRandom { static int r[10]; int i; /* set the seed */ srand( (unsigned)time( NULL ) ); for ( i = 0; i < 10; ++i) { r[i] = rand(); NSLog( @"r[%d] = %d ", i, r[i]); } return r; } @end /* main function to call above defined function */ int main () { /* a yiibaier to an int */ int *p; int i; SampleClass *sampleClass = [[SampleClass alloc]init]; p = [sampleClass getRandom]; for ( i = 0; i < 10; i++ ) { NSLog( @"*(p + %d) : %d ", i, *(p + i)); } return 0; }
當上面的代碼一起編譯和執(zhí)行時,它產(chǎn)生的結果如下:
2013-09-14 03:22:46.042 demo[5174] r[0] = 1484144440 2013-09-14 03:22:46.043 demo[5174] r[1] = 1477977650 2013-09-14 03:22:46.043 demo[5174] r[2] = 582339137 2013-09-14 03:22:46.043 demo[5174] r[3] = 1949162477 2013-09-14 03:22:46.043 demo[5174] r[4] = 182130657 2013-09-14 03:22:46.043 demo[5174] r[5] = 1969764839 2013-09-14 03:22:46.043 demo[5174] r[6] = 105257148 2013-09-14 03:22:46.043 demo[5174] r上一篇:Objective-C 復合對象下一篇:Objective-C語言程序結構