I know iPhones (and iPads) run on ARM processors, which are little-endian by default (and iOS on itself is little-endian according to the Wikipedia page); however, ARM processors supposedly have the ability to switch between little-endian and big-endian. How possible is this and how does it work?
Endianness isn't something that end users have any real interaction with - but here is a 10,000 foot summary of what this means for users of Apple products.
In a nutshell - endianness for an internal processor is the same as the writing direction for a language. When you look at letters of an english text, we all agree to start on the top left and read first right then down. Other languages start on the right and read to the left and some even read down first before moving left or right.
It doesn't really matter to a user if the bits in an internal representation of an address or number gets stored little endian or big endian. In fact OS X on a Mac adheres to a big-endian representation and iOS adheres to little-endian ordering. This fact doesn't in any way mean that the two devices can't work together properly. This works because this representation only happens internally and doesn't get exposed to us as users.
even if you think you do not need to know the endianness someone might do. No need to explain why someone does not need it because you may do not know the context. The question is not "do I need to know endianness" but rather "is it big- or little endian". So concentrate on the subject please!
Having said that probably it is the best practice if we do not re-invent the wheel and just rely on the macros Apple provides for this. The reason is because they have spend quite some time to optimize these macros and made sure that works well with the simulator as well as on Mac, iPhone and all of their OS' and hardware.
If you dig down what is happening when you invoke