IOS:处理一个对象

时间:2011-06-17 14:19:45

标签: objective-c ios xcode

我有这段代码:

-(IBAction) doSomething{ 
FirstViewController *firstViewController = [[[FirstViewController alloc]init]autorelease];
[firstViewController.label1 setAlpha:1.00];
[firstViewController.label2 setAlpha:1.00];
}

-(void) do{
//use firtsViewController in this method
}

正如您在示例中所看到的,我使用FirstViewController类的对象“firstViewController”,但是如果我想在方法“do”中使用相同的对象?我该怎么办

3 个答案:

答案 0 :(得分:4)

在标题中有......

FirstViewController *firstViewController;

然后用...替换你的方法

-(IBAction) doSomething{ 
if(firstViewController == nil) {
  firstViewController = [[FirstViewController alloc]init];
}

[firstViewController.label1 setAlpha:1.00];
[firstViewController.label2 setAlpha:1.00];
}

并添加..

- (void)dealloc {
  [firstViewController release];
  [super dealloc];
}

答案 1 :(得分:0)

你的'firstViewController'只对你的doSomething方法是本地的,在这个方法之外它不存在!如果要跨方法使用它,可以考虑将其实现为包含您使用它的方法的类的成员变量吗?

答案 2 :(得分:-1)

由于do没有参数,并且你用不同的方法声明控制器,你不能。

你可以做几件事,但最明显的是:

  • make do接受FirstViewController类型的参数或其超类,然后传入。
  • 声明一个全局变量firstViewController并在doSomething中对其进行实例化,稍后您将在do中使用它。