Xcode.CalendarUnitDay 不存在

Xcode .CalendarUnitDay doesn't exist

这可能是我的 xCode 之类的问题,但我正在使用一些代码来获取当前日期,但我在这行代码中一直出错,

var comp = cal.components((.CalendarUnitDay | .CalendarUnitMin), fromDate: date);

这是全部代码

    var date = NSDate();
    var cal = NSCalendar.currentCalendar();
    let comps : NSCalendarUnit = .CalendarUnitMinute | .CalendarUnitDay | .CalendarUnitHour;
    var info = cal.components(comps, fromDate: date);

    var day = info.day;
    var hour = info.hour;
    var min = info.minute;

    var text = "Day:  + \(day) + \nHour:  + \(hour) + \nMinute:  + \(min)";
    label.text = text;

告诉我 .CalendarUnitDay 和 .CalendarUnitMin 不是成员变量。这对我来说可能是一些愚蠢的错误,但我无法终生找出问题所在,也无法在 Apple 的文档或在线中找到解决方案。 感谢您的帮助。

分两行写。首先形成位掩码:

let comps : NSCalendarUnit = .CalendarUnitMinute | .CalendarUnitDay

现在使用 comps需要组件的地方:

var comp = cal.components(comps, fromDate: date)

此外,请确保您已展开 cal。它作为一个 Optional 到达,所以你必须打开它。例如:

let cal = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)!

注意最后的感叹号。

因此,将它们与任意日期放在一起:

let cal = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)!
let date = NSDate()
let comps : NSCalendarUnit = .CalendarUnitMinute | .CalendarUnitDay
var comp = cal.components(comps, fromDate: date)

.CalendarUnitDay 替换为 NSCalendarUnit.Day .CalendarUnitMin NSCalendarUnit.Minute.