How many times have you tried to debug something in Objective-C without really knowing *why* it works a certain way? Do you start sweating when Xcode throws linker errors your way, or when you have to mix ARC and non-ARC code? This talk will reveal how Objective-C works, what actually happens when your application is linked, and reveal what ARC is actually doing. Objective-C is a 30-year-old language, and it’s evolving faster than ever. We’ll look at the basics of the language, how properties and categories work, and cover advanced topics like creating classes at runtime, memory management and ARC, and tagged pointers. At the end of the talk, you’ll be able to diagnose issues with your app more quickly, dive into system components more readily, and have a better sense of why your code works.