Для справки и в поддержку ответа @vincent osinga. Вот этот код, обернутый в C-функцию ... который возвращает двоичную "строку" из NSUInteger ... идеально подходит для записи побитовых typedef и т. Д. 1001 *
- (NSString*) bitString:(NSUInteger) mask{
NSString *str = @"";
for (NSUInteger i = 0; i < 8 ; i++) {
// Prepend "0" or "1", depending on the bit
str = [NSString stringWithFormat:@"%@%@",
mask & 1 ? @"1" : @"0", str];
mask >>= 1;
}
return str;
}
Я не думаю, что NSInteger numberCopy = theNumber;
необходимо, поскольку вы не используете указатель, а просто примитивное значение в качестве аргумента, // so you won't change your original value
. Это позволит использовать в качестве результатов / результатов, как ...
NSEventType anEvent = NSLeftMouseUp|NSLeftMouseDown;
NSLog(@"%@, %u\n%@, %u\n%@, %u\n%@, %u",
bitString( NSScrollWheel), NSScrollWheel,
bitString( NSLeftMouseUp|NSLeftMouseDown),
NSLeftMouseUp|NSLeftMouseDown,
bitString( anEvent ), anEvent,
bitString( NSAnyEventMask ), NSAnyEventMask);
NSLOG ➞
00010110, 22 /* NSScrollWheel */
00000011, 3 /* NSLeftMouseUp | NSLeftMouseDown */
00000011, 3 /* same results with typedef'ed variable */
11111111, 4294967295 /* NSAnyEventMask */