2012-08-16 89 views
2

我是新來Objective-C編程,並有一些C++在我的腰帶下。作爲我的第一個程序之一,我試圖製作一個相當簡單的應用程序,可以記錄用戶的心率。Objective-C - 訪問/初始化超出範圍問題的對象

我做了一個類來存儲所有這些信息(稱爲HeartRate),我想從中創建一個對象。但是,我在範圍和初始化對象方面存在問題。我試圖在名爲'buttonPressed'的方法中初始化它,但該對象不能在此函數之外訪問。我看了一下使用AppDelgate,但沒有太多的運氣 - 就像我提到的,我是Objective-C的初學者,所以它可能可以完成,但我不知道該怎麼做。

我在哪裏可以安全地初始化它,以便它可以被其他函數訪問?

如果你們希望我發佈任何代碼或更詳細地解釋,我會很高興。

下面是該IBAction爲代碼:

-(IBAction)buttonPressed:(id)sender{ 
HeartRate *HR = [[HeartRate alloc]init]; 
int beats = [HR getBeats]; 
[HR setBeats:(beats+1)]; 
NSString *outputBeats = [NSString stringWithFormat: @"%i", [HR getBeats]]; 
beatsText_.text = outputBeats; 
+0

請張貼的'代碼 - (IBAction爲)buttonPressed:(id)的sender'。 – Stream 2012-08-16 22:12:39

+0

順便說一句,它沒有做你認爲它做的事情 - 你在每次按下按鈕時重新啓動HR,所以它的getBeats方法將始終返回0.在構造函數中初始化一次。 – 2012-08-17 05:27:07

回答

1

聲明對象作爲一個實例變量,以便在任何地方訪問它包含心率裏面的類:

@interface AppDelegate: NSObject <UIApplicationDelegate> { 
    HeartRate *rate; 
} 

@end 

@implementation AppDelegate 

- (void)buttonPressed { 
    rate = [[HeartRate alloc] init]; 
    // etc. 
} 

@end