是否有NSDate
的第三方扩展名?
我需要一些方法来调整日期(增加或减少日/月/年)并将日期对象保存在同一个内存中(因此myDate = getNewDateByAdjustingOldOne (myDate);
是不可接受的。)
如果尚未实现可变日期,是否可以获取内部NSDate
数据(考虑到NSDate
类接口中无法访问内部数据)。
答案 0 :(得分:1)
您可以让所有需要共享NSDate
对象的对象存储指向指针的指针,即
NSDate** pDate
然后在&pDate
上执行所有操作。在您调整日期的班级中,只需继续重置
&pDate = NSDate* *newDate*
然后所有对象都将同步。
答案 1 :(得分:0)
真的是做myDate = getNewDateByAdjustingOldOne(myDate)的内存开销;太小了我真的不担心。过早优化可以导致完全可以避免的错误。
答案 2 :(得分:0)
您可以使用NSCalendar
和NSDateComponents
来表示可变日期。设置“预制”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上写了一些不错的文档。