How to define category bit mask enumeration for SpriteKit in Swift?

RaffAl picture RaffAl · Jun 5, 2014 · Viewed 16.7k times · Source

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.

error screenshot

Answer

nschum picture nschum · Jun 5, 2014

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.