我想在接口中保留对数组的引用,例如:

@interface
{
   float myArray[];
}
@end


然后在我的实现文件中使用它,例如:

@implementation

-(void)someMethodToFillValuesInArray
{
  myArray = { 10.0f, 20.0f, 30.0f };
}

-(void)someMethodToUseArray
{
   float sum = myArray[0] + myArray[1];
}

@end


但是,XCode会引发语法错误,我无法编译。

我无法理解语法,我尝试了很多方法,但无法继续进行。谁能帮我 ?

最佳答案

您可以在声明数组时而不是在声明数组后使用静态初始化程序。

在声明时进行初始化时允许

float myArray = { 10.0f, 20.0f, 30.0f };


否则,您应该在接口中声明如下长度的数组

float    *myArray;


并在实现文件中使用它,如下所示

要动态分配空间,请使用对malloc的调用,传入要分配的总字节数

int size = 3;    // This size can be whatever you set during runtime or compile time
myArray = (float *)malloc(sizeof(float)*size);
myArray[0] = 1.0;
myArray[1] = 2.0;
myArray[2] = 3.0;


但是由于手动为阵列分配了一定数量的内存,因此您有责任在完成处理后释放它。使用free(myArray)释放分配的内存。

关于ios - 如何存储全局数组引用,但稍后在实现文件的某些方法中初始化值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20827184/

10-11 23:00
查看更多