0
我必須確定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中首次棄用,因此很久以前)。 有點害怕使用舊的棄用方法進行生產。有沒有辦法使(甚至不是)新方法的工作?
https://開頭開發商.apple.com/documentation/foundation/nscalendar/1414841-components?language = objc我不認爲它已被棄用。 iOS8可能會棄用的是「NSWeekdayCalendarUnit」與「NSCalendarUnitWeekday」。 – Larme
另外,請檢查'ordinalityOfUnit:inUnit:forDate:'的文檔。它說在某些情況下返回'NSNotFound'(比如'smaller'> ='larger'',因爲在你的情況下它們是相等的),'NSNotFound'可以從'NSUInteger'轉換爲'-1' int' – Larme
Larme:你說得對。謝謝!這是一個簡單的解決方案... – gs80