Подтвердить что ты не робот

NSYearCalendarUnit устарел в iOS

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

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit;
4b9b3361

Ответ 1

Используйте 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]

Ответ 2

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

let flags: NSCalendarUnit = .CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay