Авто-релиз / Назначить понимание - PullRequest
0 голосов
/ 07 ноября 2011

Хорошо, я действительно использую лоты autorelease / asign, но у меня сейчас есть проблема, которую я не получаю. Вероятно, совершенно очевидно, почему это не работает, но я бы очень хотел, чтобы вы мне это объяснили.

Итак, у меня есть UIViewController, который я инициализирую так:

controller = [[[LBLogInViewController alloc] initWithNibName:@"LBLogInViewController" bundle:nil] autorelease];

После этого я задаю ему свойство (неатомное, назначаемое):

controller.settingsViewController = self;

Почему это свойство не сохраняется? Значение, которое я установил, является контроллером суперпредставления, поэтому оно не будет выпущено. Очевидно, что он работает с (неатомным, сохраняют), но я хотел бы знать, почему здесь не работает assign.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2011

Если controller объявлен как (nonatomic, retain), и вы используете «controller =» вместо «self.controller =», вы не будете увеличивать счет сохранения, потому что вы обходите установщик перейти прямо к переменной экземпляра.

0 голосов
/ 07 ноября 2011

Убедитесь, что ваш @synthesize, @property и settingsViewController ivar не имеет орфографических ошибок (точно так же).

...