Используйте 1 переменную во всем приложении и где я могу ее инициализировать? - PullRequest
1 голос
/ 08 сентября 2011

У меня есть приложение, и на первой странице есть кнопка, с помощью которой пользователь может установить изображение на второй странице. Для переключения страниц используется код, который я использую:

- (IBAction)myCart:(id)sender; {
MyCartViewController * cart2 = [[MyCartViewController alloc]init];
cart2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:cart2 animated:YES];
[cart2 release];

}

И у меня также есть другой метод, который позволяет пользователю нажимать кнопку и устанавливать изображение.

- (IBAction)outlet1 {
cart.displayImage = YES; 

}

cart - это файл ivar, созданный в файле .h, поэтому я могу использовать его во всем файле. Моя проблема заключается в том, что мне нужно иметь возможность использовать корзину (не cart2) в методе myCart. Как я могу это сделать? Потому что, если я попытаюсь использовать cart2 просто cart и удалить строку: MyCartViewController * cart2 = [[MyCartViewController alloc]init];

приложение вылетает при попытке переключения страниц. Как я могу использовать одну и ту же переменную для обоих методов? Спасибо всем!

1 Ответ

1 голос
/ 08 сентября 2011
- (IBAction)myCart:(id)sender {
     MyCartViewController * cart2 = [[MyCartViewController alloc]init];
     cart2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
     [self presentModalViewController:cart2 animated:YES];
      [cart2 release];
}

cart2 является локальной ссылочной переменной и не может сохраняться после метода myCart.Вместо этого объявите его как часть интерфейсной переменной и инициализируйте его методом init.Не забудьте выпустить его, наконец, в конце, где вы выпускаете все переменные-члены интерфейса (в dealloc).

...