@propery сохранил, я должен выпустить? - PullRequest
1 голос
/ 28 июня 2011

Скажи, что у меня есть:

@interface Test : NSObject {
    NSString *string1;
}
@property (nonatomic,retain) NSString *string1;
@end

Реализация:

@implementation Test
@synthetize property1;
-(id) init {
  if (self=[super init]) {
    NSString *temp = @"testing";
    string1 = [NSString stringWithString:temp];
  }
  return self;
}

Нужно ли освобождать string1 в методе dealloc?

1 Ответ

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

Да, и вам также необходимо использовать метод доступа, чтобы установить его в вашем -init:

self.string1 = [NSString stringWithString:temp];

Если вы обращаетесь к ивару напрямую, как вы это делали в своемвопрос, новое значение для свойства не сохраняется должным образом.

( Edit ) Или, если вы, как некоторые люди, предпочитаете избегать использования методов доступа в -init, вынужно -retain значение вручную:

string1 = [[NSString stringWithString:temp] retain];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...