Мое предложение будет иметь файлы Objective-C в вашем проекте (файл .m), а затем хранить Objective-C ++ в отдельных файлах (как говорится, файлы .mm).
Одной из стратегий было бы использование этих классов Objective-C ++ просто как оберток над классами C ++: напишите свой код на C ++, в файлах .cpp, как обычно. Затем, когда вам нужно получить доступ к некоторым функциям из вашего C ++ из файла Objective-C, напишите класс-оболочку Objective-C ++ и вызовите его из своего Objective-C.
Этот последний бит выглядит как большая работа для небольших проектов, и это так, но если у вас есть много C ++, который вам нужно использовать, и сравнительно немного Objective-C для написания, это работает довольно хорошо , (Представьте себе ситуацию, когда вы пишете интерфейс Cocoa для хорошо разработанной программы для Windows или Linux: когда вся логика приложения была написана без учета платформы, и вам «просто» нужно написать пользовательский интерфейс в Cocoa, чтобы запустить его на Mac.
Но еще одна причина использования этого подхода-обертки заключается в том, что Objective-C ++ является гибридным языком, поэтому имеет ограничения в отношении возможностей в обоих направлениях.