1

我正在开发一个 iOS 应用程序,其中大部分后端已经用 C++ 完成。该界面显然是在 Obj-C 中的,我不确定如何同时使用这两种语言。

基本上,我想Song在我的 Objective-C 文件中有一个数据成员,然后对该歌曲数据成员/对象执行这些操作:

Song song("Hardcore Beatzzz", "RockzStarsz", 60);
song.setTimeSig(4,4);

Track synthTrack;
synthTrack.setTrackName("sinussynth #1");

Note note3(880, 100, 8, 1, 17);
synthTrack.addNote(note3);

playlist.addTrack(synthTrack);

很明显,这都是 C++,但我将如何在我的 Objective-C 文件中做到这一点?

4

1 回答 1

4

创建一个扩展名为 .mm 的文件,编译器会将其视为 Objective-C++ 源代码。这将允许您混合 C++ 和 Objective-C 代码。

基本上,您可以调用 C++ 函数并声明具有 C++ 类类型的变量。

在 .mm 文件中,您应该包含 C++ 代码的 .h 文件,然后在 Objective-C 中使用 C++ 的声明。

一个足够的限制:您不能从 Objective-C 接口继承 C++ 类,反之亦然。

当然,“最好的”部分是需要对 C++ 对象进行手动内存管理(参见 rickster 的评论)。没有自动垃圾收集,因此当您声明指针并分配一些内存时,您必须稍后释放它们。

于 2012-06-27T22:03:54.817 回答