我想在接口中保留对数组的引用,例如:
@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/