2012-08-16 54 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