По умолчанию Xcode создает файлы .h и .m при запросе нового класса ObjC.Все работает нормально, пока вам не понадобится обратиться к любому файлу C ++ в другом месте вашего проекта и начать #import его в файл .h или .m
В этот момент компилятор ObjC сильно запутывается и бросает горыошибок синтаксического анализа, и вы, пользователь (то есть, я), становитесь еще более запутанными, пока не столкнетесь со мной: конечно, вместо этого я должен сделать этот файл файлом ObjC ++.
Возможны следующие варианты:
- сообщает Xcode, что этот конкретный файл, даже если это файл .m, действительно является файлом ObjC ++, или
- переименуйте этот файл в .mm.
Первый вариант не очень приятен для меня, потому что этот файл на самом деле является ObjC ++ независимо от того, что думает проект.
Второй вариант тоже не годится, поскольку он портит репозиторий Git, который затем «забывает», что раньше был другой файл .m, который действительно является историей этого «нового» файла .mm.
Поэтому я решил теперь всегда переименовывать любой файл .m, который Xcode создает для меня, в первую очередь .mm после его создания, чтобы я не потерял историю.
До сих пор это работало хорошо для меня, но у меня в голове есть небольшое беспокойство, что может быть какой-то угловой случай, когда я действительно хочу иметь файл ObjC, а не файл ObjC ++.
Какими будут эти угловые случаи?Кто-нибудь знает о любом файле ObjC ++, который, как оказалось, НЕ содержит никаких ссылок на C ++, но каким-то образом задушит компилятор ObjC, просто из-за того, что он является файлом .mm?
просто осудить использование .m навсегда и вместо этого придерживаться .mm?