2015-04-10 14 views
9

Mã của tôi:'YearCalendarUnit' đã bị phản đối trong OS X phiên bản 10.10: Sử dụng NSCalendarUnitYear thay

let calendar = NSCalendar.currentCalendar() 
let dateComponents = calendar.components(NSCalendarUnit.YearCalendarUnit | NSCalendarUnit.MonthCalendarUnit | NSCalendarUnit.DayCalendarUnit, fromDate: self) 

lỗi của tôi:

'YearCalendarUnit' was deprecated in OS X version 10.10: Use NSCalendarUnitYear instead 
'MonthCalendarUnit' was deprecated in OS X version 10.10: Use NSCalendarUnitMonth instead 
'DayCalendarUnit' was deprecated in OS X version 10.10: Use NSCalendarUnitDay instead 

Nhưng tôi không thể gõ NSCalendarUnitYear cũng như (NSCalendarUnitMonth/NSCalendarUnitDay) Chuyện gì vậy?

+1

Tại sao bạn không thể nhập tên này? – Jens

Trả lời

14

Sử dụng let dateComponents = calendar.components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay, fromDate: self)

Edit:
này là vì các thông báo lỗi là dành cho Objective-C, không thích nghi cho nhanh chóng.

+0

.CalendarUnitYear cũng hợp lệ trong ngữ cảnh của NSCalendarUnit –

+0

@RobertWagstaff Tôi sẽ thêm điều đó, cảm ơn. – Schemetrical

+3

Kể từ Swift 2, bạn sử dụng cú pháp 'OptionSetType'. Đối với cùng mã này, nó trông giống như 'calendar.components ([. Year, .Month, .Day], fromDate: self)' Xem http://stackoverflow.com/questions/24066170/how-to-create- ns-options-style-bitmask-enumerations-in-swift để biết thêm – Will

Các vấn đề liên quan