Objective-C - 访问/初始化对象超出范围问题

时间:2012-08-16 22:10:18

标签: objective-c class object scope

我是Objective-C编程的新手,并且掌握了一些C ++。作为我的第一个程序之一,我正在尝试制作一个可以记录用户心率的相当简单的应用程序。

我创建了一个类来存储所有这些信息(称为HeartRate),我想从中创建一个对象。但是,我遇到了范围问题并初始化了对象。我试图在一个名为'buttonPressed'的方法中初始化它,但该对象在该函数之外是不可访问的。

我研究过使用AppDelgate,但没有太多运气 - 就像我提到的,我是Objective-C的初学者,所以它可能会完成,但我不知道该怎么做。< / p>

我可以在哪里安全地初始化它,以便其他功能可以访问它?

如果你们要我发布任何代码或更详细地解释,我会很高兴。

以下是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;

1 个答案:

答案 0 :(得分:1)

将对象声明为实例变量,以便在包含HeartRate的类中的任何位置访问它:

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

@end

@implementation AppDelegate

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

@end