Objective-C uses something fancy called tagged pointers to reduce memory usage and increase speed when dealing with certain small object types like strings, dates, and numbers. Basically, if all the data in the object can fit in the pointer, the runtime puts it there instead of allocating and tracking heap memory.
Does Swift have a similar mechanism?