The extension .mm
is the extension for the C++
compilation unit expected by the Objective-C compiler, while the .m
extension is the extension for the C
compilation unit expected by the Objective-C compiler.
That’s assuming you don’t use a compiler flag to override the file extension, as this gentleman has done.