Ошибка объединения NSCalendarUnit с OR (канал) в Swift 2.0

У меня есть код, который ломается в Swift 2.0:

let formatter = NSDateComponentsFormatter()
formatter.allowedUnits = NSCalendarUnit.Year
formatter.allowedUnits |= .Month
formatter.allowedUnits |= .WeekOfMonth 
formatter.allowedUnits |= .Day
formatter.allowedUnits |= .Hour
formatter.allowedUnits |= .Minute

Я получаю сообщение об ошибке Binary operator '|=' cannot be applied to 'NSCalenderUnit' operands.

Каков новый способ делать такие вещи?


person rob    schedule 03.09.2015    source источник
comment
По сути та же проблема (и решение), что и stackoverflow.com/questions/30761996/.   -  person Martin R    schedule 03.09.2015


Ответы (1)


NSCalendarUnit — это OptionSetType в Swift 2 вместо RawOptionSetType. Это означает, что вы не можете логично-или это больше. Вместо этого вы можете использовать буквальное представление массива:

formatter.allowedUnits = [.Year, .Month, .WeekOfMonth, .Day, .Hour, .Minute]
person zneak    schedule 03.09.2015