J'ai une propriété:Quels attributs @property doivent être utilisés lorsqu'aucune référence à la valeur n'est stockée?
@property(readwrite, ?????) NSDate *selectedDate;
Les accesseurs sont comme ceci:
NSCalendar _calendar;
NSDateComponents _selectedDateComponents;
@dynamic selectedDate;
- (void)setSelectedDate:(NSDate *)newDate
{
@synchronized(_selectedDateComponents)
{
if (!newDate) return;
[_selectedDateComponents release];
int requiredComponents = NSDayDateComponent | NSMonthDateComponent | NSYearDateComponents;
_selectedDateComponents = [[_calendar components: requiredComponents fromDate:newDate] retain];
}
}
- (NSDate *)selectedDate
{
@synchronized(_selectedDateComponents)
{
if (!_selectedDateComponents) return nil;
return [_calendar dateFromComponents:_selectedDateComponents];
}
}
La classe ne conserve pas de référence à l'objet qui est envoyé au poseur. Aucun des retain
, copy
ou assign
ne semble approprié. J'aime avoir cette fonctionnalité encapsulée comme une propriété, mais peut-être qu'une propriété n'est pas appropriée.
Quelle est votre opinion?