2011-08-01 213 views
0

我是C新手,我遇到了很多困难。希望你能走出去帮助我。从另一个类访问方法

好吧,我有一个视图控制器类,显示从外部传感器插入到iPhone的数据。我有另一个数据库类应该抓住这些数据并将其存储在一个可用于绘制图形的数组中。

我很难找到一种方法来捕获视图控制器类方法变量捕获的数据并使用它来存储在数据库类中。

下面的代码来自View Controller类,该类捕获模拟信号并显示在UILabel中。

(void) forceCalculationKg{ 
    NSNumber *number = [controller. analogInValues objectAtIndex:0]; 
    [controller enableDigitalInputs:YES]; 
    double value = [number doubleValue]; 
    double force; 
    force = 0.2908 *pow(2.718,(1.2089 * value)); 
    double forcekg; 
    forcekg = force/2.2; 
    forceoutput.text = [NSString stringWithFormat:@" %0.1f", forcekg]; 
} 
+0

当传感器类完成数据提取时,您需要提醒您的数据类。您可以通过订阅传感器类引发的事件来做到这一点,然后做出相应的响应。 –

回答

0

您没有提交实际编译的问题的代码。但无论如何,我假设您的forceCalculationKg方法是您调用的用于检索传感器数据的控制器上的函数?然后,您正在对数据进行计算并显示它,对吧?为了保存这些数据,只需在控制器中添加一个NSMutableArray属性并将每个转换的数据点保存到它。

-(void) forceCalculationKg { 
    NSNumber *number = [controller.analogInValues objectAtIndex:0]; 
    [controller enableDigitalInputs:YES]; 
    double value = [number doubleValue]; 
    double force = 0.2908 *pow(2.718,(1.2089 * value)); 
    double forcekg = force/2.2; 
    [self.datapoints addObject: [NSNumber numberWithDouble: forcekg]]; 
    forceoutput.text = [NSString stringWithFormat:@" %0.1f", forcekg]; 
} 

datapointsNSMutableArray属性,您通过@property和@synthesize关键字添加到您的视图控制器。然后,您可以将程序周围的datapoints阵列传递到您需要的任何位置。

+0

其实我没有为编译的方法编写代码。 forceCalculationKg来自视图控制器类,它通过analogInValues获取模拟信号并通过变量值传递。我想要做的是在另一个类中编写一个方法,该类可以使用此变量并将其存储在NSMutable数组中以用于绘制图形。 – ilaunchpad

+0

好的。那么我展示的代码将可以在你选择放置的任何地方工作。只要记得在视图控制器中包含对类的引用,或者通过类级方法在其他对象中访问nsmutable数组。 – Perception

相关问题