Вопрос о том, как работают объективные установщики свойств c - PullRequest
0 голосов
/ 21 февраля 2011

Верны ли мои два предположения о свойствах?

@interface Foo : NSObject {
NSDate *Created;
}

@property (nonatomic, retain) NSDate *Created;

@end

@implementation Foo

@synthesize Created;

- (id) init {
if(self = [super init])
{
    Created = [NSDate date]; //this will not call the setter and instead just access the variable directly, which means it will not automatically get retained for me.
    self.Created = [NSDate date]; // this will call the setter, which will retain the variable automatically for me.
}
return self;
}

- (void)dealloc {
    [Created release]   
    [super dealloc];
}
@end

Ответы [ 2 ]

7 голосов
/ 21 февраля 2011

Да; это правильно.

Обратите внимание, что переменная экземпляра должна быть created; оно должно начинаться со строчной буквы. Я также рекомендовал бы creationDate.

0 голосов
/ 21 февраля 2011

Рекомендуется не использовать свойства в dealloc или init, поэтому в методе init вместо выполнения self.propertyName = [NSDate date]; вы должны сделать fieldName = [[NSDate alloc] init];, хотя выпуск в dealloc нормален

Подробнееон

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