To define a category bit mask enum in Objective-C I used to type:
typedef NS_OPTIONS(NSUInteger, CollisionCategory)
{
CollisionCategoryPlayerSpaceship = 0,
CollisionCategoryEnemySpaceship = 1 << 0,
CollisionCategoryChickenSpaceship = 1 << 1,
};
How can I achieve the same using Swift
? I experimented with enums but can't get it working. Here is what I tried so far.
Swift 3 with enum:
What you could do is use the binary literals:
0b1
,0b10
,0b100
, etc.However, in Swift you cannot bitwise-OR enums, so there is really no point in using bitmasks in enums. Check out this question for a replacement for NS_OPTION.
If you look at this swift tutorial, you can avoid the whole toRaw() or rawValue conversion by using: