问题标签 [objective-c++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
903 浏览

c++ - 从 Objective-C 子对象调用 C++ 对象的方法

我有一些 Objective-C++ 代码,我试图从 Objective-C 对象中获取事件以调用 C++ 对象中的方法。我对 Objective-C 很陌生,所以我可能做错了。

例子:

该方法[house.door.knob Event]是在事件上生成的,我希望它能够调用house.alarm.Alert(). 但我很困惑如何以正确的方式做到这一点。有人可以建议一种方法来实现这一点吗?

0 投票
2 回答
2164 浏览

c++ - 我可以在编译和链接时将 C++ 主函数和类与 Objective-C 和/或 C 例程分开吗?

我有一个小型 C++ 应用程序,我导入了 Objective-C 类。它作为 Objective-C++ 文件 .mm 工作,但任何包含可能最终包含一些 Objective-C 头文件的头文件的 C++ 文件都必须重命名为 .mm 扩展名以用于正确的 GCC 驱动程序。

有没有办法为 Objective-C 类编写一个纯 C++ 包装器,或者我可以以某种方式将 Objective-C 对象分离出来并单独链接它们?也许即使 Objective-C 类变成了一个小型库,我也可以在编译时静态重新链接?

问题是这段代码是跨平台的,在通常不使用Objective-C的系统(即不是Mac)上编译起来更加困难。即使预处理器命令限制了任何在 Windows 或 Linux 上的 Objective-C 代码的实现,原始代码仍然具有 .mm 扩展名,并且 GCC 仍然将代码视为 Objective-C++。

0 投票
4 回答
18298 浏览

iphone - 将 C++ 对象添加到 Objective-C 类

我正在尝试混合 C++ 和 Objective-C,我已经完成了大部分工作,但希望在 Objective-C 和 C++ 代码之间有一个接口类。因此,我想在 ViewController 接口中有一个持久的 C++ 对象。

这通过禁止没有类型的“myCppFile”声明而失败:

然而,这在 .mm 实现文件中工作得很好(它不起作用,因为我希望 cppobject 在调用之间保持不变)

0 投票
2 回答
29672 浏览

iphone - Objective-C,.m / .mm 的性能差异?

在创建新类时,我倾向于默认使用 .mm 扩展名,以便以后可以在需要时使用 ObjC++。

这样做有什么缺点吗?你喜欢什么时候.m?是否.m编译为更快的可执行文件(因为 C 通常比 C++ 快)?

0 投票
3 回答
1143 浏览

c++ - 在 Objective-C++ 中使用 C++ 类

我在 Cocoa 应用程序中使用了一个小型 C++ 库(atm 只是一个非常简单的示例来了解我应该如何做)。

所以我在命名空间中有一个小的 C++ 类,如下所示:

然后我有一个带有以下代码的 .h 文件:

最后是一个实现(在一个名为 test.mm 的文件中):

当我尝试编译它时,出现以下错误:

我究竟做错了什么??看起来它使用 C 编译器来编译头文件。

当我将成员声明为 void* 类型然后在实现中使用强制转换时,我可以将其包装在 Objective-C 类中。但这绝对不是最舒服的方式。

0 投票
2 回答
1251 浏览

xcode - Xcode 项目中的 C++ 和 Objective C

我最近将 Xcode 更新到版本 3.2.2(预发布)。它在旧的 Objective-C 项目中运行良好,但我在混合了 Objective-C/Objective-C++ 代码的项目中遇到了一些问题。在编译期间,我收到以下错误:

我检查了编译器抱怨的路径,发现文件 functexcept.h位于以下路径中:

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include/c++/4.2.1/armv7-apple-darwin9/bits/

我的问题是我应该在哪里更改该路径以在 Xcode 中更正一个?提前致谢。

0 投票
3 回答
1693 浏览

objective-c - Objective-C++ 中的字符串

我刚刚将我的代码从 Objective-C 切换到 Objective-C++。除了两条线,一切都很顺利。

这条线抱怨说

与第一个相关的第二个错误来自以下行:

它抱怨说

在 ObjC 和 ObjC++ 之间的差异中我错过了什么吗?

0 投票
1 回答
1113 浏览

iphone - 在 Objective C++ 中管理内存需要了解什么?

我正在使用 iPhone 应用程序中的 C++ 音频库。是否有任何可以用于我的 C++ 对象的 Objective C / Cocoa 内存管理基础设施,还是我需要阅读并学习 C++ 内存管理?

0 投票
1 回答
903 浏览

iphone - 在 Objective C++ 中使用不透明指针的问题

这个问题的答案解释了不透明指针是在 Objective C++ 头文件中包含 C++ 成员变量的好方法。尝试遵循示例时出现编译错误。这是我的标题中的相关代码,相应的编译器错误显示为注释:

我在这里做错了什么简单的事情吗?

0 投票
2 回答
256 浏览

c++ - 0 作为模板参数提供时不是有效的 FILE*

以下代码

在 MacOS X 上由 Xcode 编译为 .mm 文件(Objective C++)时,会引发以下错误:

错误:无法将模板参数“0”转换为“文件*”。

请问这是怎么回事?有问题的代码在 MSVC 下编译得很好。从什么时候开始 0 常量不是指向任何东西的有效指针?这是Objective C++(而不是普通C++)的产物吗?