Xcode .CalendarUnitDay不存在

时间:2015-05-05 16:38:06

标签: ios xcode swift calendar

这可能是我的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的文档或在线的解决方案。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

将其分为两行。首先形成位掩码:

let comps : NSCalendarUnit = .CalendarUnitMinute | .CalendarUnitDay

现在使用 comps需要组件:

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

另外,请确保您已解开cal。它作为可选项到达,因此您必须打开它。例如:

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)