using c++ (.cpp) with objective-c (.m)
using c++ (.cpp) with objective-c (.m)
对不起,我的英语不好。我正在尝试在我的iOS项目中使用纯c ++代码,但我有以下问题:
我创建了一个新的文件产品.cpp + product.h,我创建了他自己的方法和属性,我想在我的 viewcontroller.m 中使用这个类但不运行,我将 viewcontroller.m 的扩展更改为 viewcontroller.mm 但不运行,但如果我将 appDelegate.m 的扩展更改为 appDelegate.mm 这可以运行。
我的问题是,如果我想使用.cpp,我总是必须将 mi 文件更改为 .mm?
:/
一般来说,.mm的文件扩展名告诉Xcode调用Objective-C++编译器,而.m告诉编译器调用Objective-C编译器。 您可以使用右侧的文件设置窗格按文件设置编译器类型(因此您可以强制对.m文件进行Objective-C++编译),但这并不直观,并且可能会使未来的维护者感到困惑。
如果你愿意考虑一个长期C++和Objective-C用户的建议,我已经做了很多两者的混合,随着时间的推移,它比它的价值更麻烦。 如果纯粹坚持Objective-C,你会好得多,如果你有一些C++库,你只需要集成,那就为它做一个C包装器。
过去,Xcode analyzer只适用于Objective-C文件,而不是Objective-C++,因此通过编写Objective-C++文件,您将失去该工具提供的很多价值。 我不确定自从我上次写任何Objective-C++以来,苹果是否在一年左右的时间里改变了它,但我想他们没有太多理由这样做。 如果可以的话,坚持使用Objective-C,因为Analyzer非常有用。
- Problems with std::cin.fail()
- 如何将数组从Objective-C发送到C++函数
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- Issues with Win32 ReadProcessMemory API
- Qt with WinAPI MouseProc
- [[maybe_unused]] with structured_binding?
- Issue with WriteProcessMemory
- OpenCV RTP-Stream with FFMPEG
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- std::adjacent_difference with std::chrono time_point
- DLL Made with CMake 使程序崩溃
- using c++ (.cpp) with objective-c (.m)
- 苹果的 Using C++ with Objective-C 文章已经消失了......谁能给我一篇新文章,或者帮我找到旧文章?
- Firebreath project with objective-c++
- c++ Boost Mix with objective-c
- OpenCV with Objective C vs Objective C++
- Objective-C in Qt with Mavericks