NSCalendar ordinalityOfUnit不会正确返回星期几

我必须确定Objective C类中的星期几。 尝试使用这种方法:NSCalendar ordinalityOfUnit不会正确返回星期几

- (NSUInteger)ordinalityOfUnit:(NSCalendarUnit)smaller 

inUnit:(NSCalendarUnit)larger

forDate:(NSDate *)date;

这是我的代码:

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 

(int) [gregorian ordinalityOfUnit:NSCalendarUnitWeekday inUnit:NSCalendarUnitWeekday forDate:[NSDate date]];

它总是返回-1,不管今天是什么日子。即使我改变了日期,或者整个星期都在循环。 但是,使用这种方法,它工作得很好:

- (NSDateComponents *)components:(NSCalendarUnit)unitFlags 

fromDate:(NSDate *)date;

到目前为止好。唯一的问题是:此方法已被弃用(在iOS 8.0中首次弃用,因此很久以前)。 有点害怕使用旧的弃用方法进行生产。有没有办法使(甚至不是)新方法的工作?

回答:

ordinalityOfUnit:inUnit:forDate:文档:

返回,对于给定的绝对时间,较小的日历单位的序数(如一天)指定的较大的日历单元内(如一周)。

您已指定相同单元针对前两个参数,你需要为第一和周第二指定一天:

[gregorian ordinalityOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitWeekOfMonth forDate:[NSDate date]] 

HTH

以上是 NSCalendar ordinalityOfUnit不会正确返回星期几 的全部内容, 来源链接: utcz.com/qa/262115.html

回到顶部