0

有这样的第三方扩展NSDate吗?

我需要一些方法来调整日期(增加或减少日/月/年)并将日期对象保存在同一内存中(因此myDate = getNewDateByAdjustingOldOne (myDate);不可接受)。

如果没有已经实现的可变日期,是否有可能获取内部数据(考虑到类接口NSDate中无法访问内部数据)。NSDate

4

3 回答 3

1

您可以让所有需要共享NSDate对象的对象都存储一个指向该指针的指针,即

NSDate** pDate

然后让他们的所有操作在&pDate. 在您正在调整日期的班级中,继续重置

&pDate = NSDate* *newDate*

然后所有对象将同步。

于 2013-03-12T15:56:00.767 回答
0

确实是执行 myDate = getNewDateByAdjustingOldOne (myDate); 的内存开销;这么小我真的不用担心。过早的优化会导致完全可以避免的错误。

于 2012-05-16T07:29:00.510 回答
0

您可以将NSCalendarandNSDateComponents用于可变日期。设置“预制”NSDateComponents以添加/减去默认时间量或根据需要进行设置。

NSDateComponents *comps = [NSDateComponents alloc] init];
comps.day = 1;
NSCalendar *cal = [NSCalendar currentCalendar];
// will wind up adding 1 day to the original date.
NSDate *newDate = [cal dateByAddingComponents:comps toDate:origDate options:NSWrapCalendarComponents];

Apple 在Calendrical Calculations上写了一些不错的文档。

于 2013-03-13T19:31:36.597 回答