Objective-C traditionally uses reference counting (manual memory management through retain/release/autorelease). While some versions of Objective-C on Mac OS X offered optional garbage collection, it was never available on iOS and has been deprecated. Reference counting (now largely automated through ARC) is the primary technique.