свойства dealloc с назначением и перезаписью target-c - PullRequest
0 голосов
/ 21 мая 2010

У меня есть такая структура:

@interface MyList : NSObject {
    NSString* operation;
    NSString* link;
}

@property (readwrite) NSString* operation;
@property (readwrite, assign) NSString* link;

@end


@implementation MyList
@synthesize operation,link;
@end

Я знаю, что если бы я сохранил вместо readwrite, я должен освободить свойства операции и ссылки.

НО мне следует отменить операцию и связать ее с кодом выше?

Ответы [ 2 ]

3 голосов
/ 21 мая 2010

Значениями по умолчанию являются readwrite, assign и atomic. Так что, не указав в первом примере атрибут «назначить, сохранить или скопировать», вы, по сути, используете метод назначения по умолчанию. Вот почему вы не будете впоследствии использовать релиз. Назначение не увеличивает количество сохраняемых объектов. Обратите внимание, что для таких объектов, как ваша строка, вы почти никогда не захотите использовать assign, потому что вы не являетесь владельцем объекта, и он может быть освобожден от вас. Так что для объектов вы хотите использовать либо сохранить, либо скопировать. Вы можете использовать assign только для скалярных типов, таких как float, NSIntegers, BOOL и т. Д. Обратите внимание, что если вы не используете сборщик мусора, вы получите предупреждение компилятора, если вы не укажете assign, retain или copy.

3 голосов
/ 21 мая 2010

Нет. Вы не создавали, не выделяли, не сохраняли и не копировали значения, поэтому не освобождали их (Авто).

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