2014-12-28 2 views
27

Я использую NSYearCalendarUnitNSMonthCalendarUnitNSDayCalendarUnit, но, к сожалению, эти «Календарные единицы» сообщаются как устаревшие сначала в IOS 8.0. Какова их альтернатива или как избежать этих предупреждений.NSYearCalendarUnit устарел в iOS

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; 
+0

Таким образом, вы имеете в виду осуждается нет? –

+0

Я не кодирую в Obj-C, но я уверен, что если что-то устарело, вам нужно переключиться на новую версию этого фрагмента кода/модуля/функции/независимо от того, –

+0

@JuanRocamonde Да, я нахожу новую версию дорогой. – developer

ответ

43

Использование NSCalendarUnitYear:

NSCalendarUnit unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay; 

я заключаю из образца кода в исходный вопрос, который вы искали Objective-C ответ, но для тех, кто ищет Swift эквивалент, вы бы делать:

let unitFlags: NSCalendarUnit = [.Year, .Month, .Day] 

Обратите внимание, в Swift 3, эквивалент будет:

let unitFlags: Set<Calendar.Component> = [.year, .month, .day] 
1

Это правильно один:

let flags: NSCalendarUnit = .CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay 
Смежные вопросы