从目标C / iOS中的另一个视图控制器访问C数组

时间:2013-12-13 21:23:30

标签: ios objective-c c arrays

我有一个C数组val[6],我用来在一个iPad应用程序的Objective-C ViewController类(我们称之为ClassA)中存储一组double值。我需要从另一个ViewController访问这个数组(我们称之为ClassB)。显然我不允许将数组设为@property,所以我做了一个getter方法,只获取数组中的一个值:

-(double)getVal:(int)index{
    return val[index];
}

我在ClassB的for循环中用我的其他方法调用它:

double newVal[6];
for(int i = 0; i < 6; i++)
    newVal[i] = [obj getVal:i];

其中obj是我实例化类型ClassA的对象。有点笨重,我知道,但我认为它的用途很好。不幸的是,newVal[]填充了0,我无法弄清楚原因。 val[]在ClassA的.h文件中实例化,并在每次调用getter方法之前运行程序时调用的方法中填充:

-(IBAction)intervalButton:(id)sender{
    //sum the previous time values
    double sum = 0;
    for(int i = 0; i < count; i++)
        sum += val[i];
    //I cut some code out of this method before posting it, 
    //so the conditions under which val is populated might not 
    //make sense, but I really just wanted display how I was setting the values of val.
    if(count < 5){
        val[count] = number - sum;
        count++;
    }else
        val[count] = number - sum;
}

为什么我的ClassB中的数组不会被填充?这是一个范围问题(即我的数组是否在该方法中填充但不在其外部)或者我试图从ClassA获取值的方式是否存在问题?

1 个答案:

答案 0 :(得分:0)

听起来obj要么是nil,要么实际上还没有在其数组中放置任何值。调试的时刻很容易告诉你是哪种情况。