I need to byte swap some bytes that represent an unsigned 16 bit integer. The following code works, but seems a bit ridiculous:

```
CFSwapInt16(*(uint16_t*)[[myNSDataVariable] bytes]);

```

Here's what I've deduced is going on:

`[[myNSDataVariable] bytes]` returns a void pointer to a byte array.

The `(uint16_t*)` casts the void pointer to a `uint16_t` pointer.

The final outer `*` dereferences the `uint16_t` pointer, providing access to the actual `uint16_t` value.

Is there a more elegant way to get the `uint16_t` value from `NSData`?