0

我试图int在我的类接口中将 C 数组定义为实例变量,以便类中的任何方法都可以访问它。

写累了

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

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

但无济于事。

实际上是否可以将 C 数组 [而不是 NSArray] 定义为类接口中的实例变量?

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 回答