Можно ли сохранить переменную, переданную по значению в target-c? - PullRequest
0 голосов
/ 11 июля 2011

Можно ли сохранить переменную, переданную по значению в target-c?

То есть:

  • У меня есть контроллер 1 У меня есть переменная, которую я передаю контроллеру2
  • он фактически передается по ссылке, и я могу использовать его, когда пользователь нажимает на кнопку контроллера 2 UINavigationController, в этом значение будет изменено в контроллере 1
  • в контроллере 2ivar согласно приведенному ниже коду

Вопрос. Так можно ли задавать эту переменную контроллера 2 с помощью «Retain», а также «отпускать» ее и устанавливать в ноль в «dealloc»метод?то есть это не повлияет на объект для контроллера 1?Например, что произойдет, если контроллер 2 освобожден, а «release» и «= nil» нажаты, это повлияет на объект, поскольку он все еще используется контроллером 1.

Контроллер 2 Извлечение кода

@interface SelectorController : UITableViewController {
    Config *_returnObject;
}
@property (nonatomic, retain) Config *returnObject;
@end


// implementation
@synthesize config;  
- (void)dealloc
{
    [config release];               config = nil;
    [super dealloc];
}

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Сохранение и отпускание переменной в контроллере 2 - это не просто нормально, это то, как вы должны это делать. :)

Установка переменной на nil в контроллере 2, установит переменную только на ноль, а не на материал, на который указывает переменная, поэтому ваш объект все еще будет там, где переменная в контроллере 1 будет работать.

1 голос
/ 11 июля 2011

Зависит от того, что вы можете сохранить переменную в View Controller 2. Потому что каждый контроллер будет отвечать за свои переменные. Если вместо этого вы назначаете свою переменную, даже если вы используете переменную во втором контроллере, это будет первый контроллер, ответственный за это.

...