2011-08-01 61 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