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

最佳答案

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

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)

关于ios - Xcode .CalendarUnitDay不存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30058617/

10-12 06:00