私は、プロパティを持っている:値への参照が格納されていない場合、どの@property属性を使用する必要がありますか?
@property(readwrite, ?????) NSDate *selectedDate;
そうのようなアクセサは次のとおりです。
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];
}
}
クラスは、セッターに送信されたオブジェクトへの参照を保持しません。 retain
,copy
またはassign
のいずれも適切ではないようです。私はこの機能をプロパティとしてカプセル化したいのですが、プロパティが適切でない可能性があります。
あなたの見解は?