2015-09-03 1 views
2

J'ai un code qui est en rupture Swift 2.0:combinant NSCalendarUnit avec OR (tuyau) à 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 

Je reçois l'erreur Binary operator '|=' cannot be applied to 'NSCalenderUnit' operands.

Quelle est la nouvelle façon de faire ce genre de chose?

+0

essentiellement le même problème (et solution) comme http://stackoverflow.com/questions/30761996/swift-2-0-binary-operator-cannot -be-appliqué-à-deux-uiusernotificationtype. –

Répondre

7

NSCalendarUnit est un OptionSetType dans Swift 2, au lieu d'un RawOptionSetType. Cela signifie que vous ne pouvez pas logique-ou plus. Au lieu de cela, vous pouvez utiliser une représentation littérale de tableau de celui-ci:

formatter.allowedUnits = [.Year, .Month, .WeekOfMonth, .Day, .Hour, .Minute]