IOS: обрабатывать объект - PullRequest
0 голосов
/ 17 июня 2011

У меня есть этот код:

-(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 ]

4 голосов
/ 17 июня 2011

В шапке есть ...

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];
}
0 голосов
/ 17 июня 2011

Поскольку do не имеет аргументов, и вы объявляете контроллер другим методом, вы не можете.

Вы могли бы сделать несколько вещей, но самые очевидные из них:

  • make do принимает аргумент типа FirstViewController или его суперкласс, а затем передает его.
  • Объявите глобальную переменную firstViewController и создайте ее экземпляр в doSomething, которую вы позже будете использовать в do.
0 голосов
/ 17 июня 2011

Ваш 'firstViewController' является локальным только для вашего метода doSomething, вне этого метода он не существует!Если вы хотите использовать его в разных методах, подумайте о том, чтобы реализовать его как переменную-член класса, содержащего методы, из которых вы его используете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...