3 ms·
>Use the bitwise AND operator & to check for a selected bitmask enumeration value. You should take care if you store result of this in a BOOL (or pass it to a
by anon1385 12y ago
>Use the bitwise AND operator & to check for a selected bitmask enumeration value.
You should take care if you store result of this in a BOOL (or pass it to a method or function that takes a BOOL). BOOL is only char big and plenty of common Cocoa bitmasks don't have any bits set in that range. For example NSEventMaskEndGesture is (1<<20).
NSEventMask mask = NSEventMaskEndGesture;
BOOL end = mask & NSEventMaskEndGesture;
if (!end) NSLog(@"Oops");
- MaxGabriel 12y agoIs this the correct approach? BOOL end = mask & NSEventMaskEndGesture ? YES : NO;
- al_gore 12y agoor just != 0
- plorkyeran 12y ago(mask & NSEventMaskEndGesture) == NSEventMaskEndGesture is the most correct, as it handles the case where NSEventMaskEndGesture has multiple bits set.
- deleted 12y ago[deleted]
- ridiculous_fish 12y agoI think, not!! BOOL end = !! (mask & NSEventMaskEndGesture); Like a little pair of surprised eyes. Also works for pointers: BOOL hasError = !! errorObj;