0

intクラスの任意のメソッドからアクセスできるように、C 配列をクラス インターフェイスのインスタンス変数として定義しようとしています。

書き疲れた

@interface aVCofMine : UIViewController{
   int[] myArray;
}

@interface aVCofMine : UIViewController{
   int myArray[];
}

しかし、役に立たない。

[NSArrayの代わりに]C配列をクラスインターフェイスのインスタンス変数として定義することは実際に可能ですか?

4

2 に答える 2

2

C 配列は、動的に割り当てられるか固定サイズである必要があります。したがって、次のことができます。

@interface AVCOfMine : NSViewController {
    int myArray[5];
}
@end

またはあなたができる

@interface AVCOfMine : NSViewController {
    int *myArray;
}
@end

@implementation AVCOfMine

- (void)viewDidLoad {
    myArray = malloc(sizeof(int) * 5);
}

- (void)dealloc {
    free(myArray);
    [super dealloc]; // include this line only if not using ARC
}
@end

前者は、配列が常に同じサイズになるように強制します。後者では、実行時にサイズを選択できますが、明らかに少し複雑です。どちらが良いかは状況によって異なります。

于 2012-11-20T17:55:34.597 に答える
0

使用する

@interface aVCofMine : UIViewController{
   int *myArray;
}

次に、配列のメモリを実際に割り当てるために、実装コードで次のようにします。

myArray = malloc(sizeof(int) * numberOfElements);

そして、それを解放することを忘れないでくださいfree(myArray);

于 2012-11-20T17:50:17.757 に答える