问题标签 [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 投票
7 回答
14034 浏览

cocoa - Objective-C++ 的支持程度如何?

我一直在通过Hillegass的书学习Objective-C和Cocoa,我突然想到使用Objective-C++可能会更好。Objective-C 似乎是开发 UI 的明确选择,但我有非常强大的 C++ 背景,并且很想用 C++ 开发应用程序后端并使用 Objective-C++ 进行 UI 集成。但我想知道苹果是否会继续开发 Objective-C++ 还是会成为死胡同。

有人在使用 Objective-C++ 吗?

0 投票
5 回答
1060 浏览

c++ - 真的有像Objective C++这样的东西吗?

我正在阅读一篇关于iPhone 编程的文章,我注意到关于 Objective C++ 的讨论,文章中显示的代码看起来主要像 Objective-C,但也有几个 C++ 片段。真的可以用 C++ 编写 Cocoa 吗?

0 投票
6 回答
1705 浏览

iphone - How much of C++ is supported in Objective-C++

I want to make an iPhone app, but I am planning to make the framework in C++. Is it possible to use things like templates in Objective-C++. I guess really the question is, can I use boost?

0 投票
4 回答
3787 浏览

c++ - 在 Objective-C 中使用 .mm 文件有哪些怪癖/惊喜?

我想在我的 Objective-C iPhone 应用程序中使用一些 C++ STL 集合。显然,这可以通过为文件提供扩展名 ".mm" 来实现。与此相关的一些怪癖/惊喜是什么?

我想使用我熟悉的基本容器(向量、队列、集合……)

干杯!

0 投票
5 回答
4942 浏览

c++ - C++ 类作为 Objective-C 类的实例变量

我需要混合使用 Objective-C 和 C++。我想将所有 C++ 内容隐藏在一个类中,并保持所有其他简单的 Objective-C。问题是我想要一些 C++ 类作为实例变量。这意味着它们必须在头文件中被提及,该文件被其他类包含并且 C++ 开始传播到整个应用程序。到目前为止,我能够提供的最佳解决方案如下所示:

这行得通。实现文件有一个mm扩展名,因此它被编译为与 C++ 混合的 Objective-C,#ifdef解锁 C++ 的东西,然后我们开始了。当其他一些纯 Objective-C 类导入标头时,C++ 内容被隐藏,并且该类看不到任何特殊内容。这看起来像一个黑客,有更好的解决方案吗?

0 投票
2 回答
1919 浏览

c++ - 在 C++ 类定义中包含 Objective C++ 类型

我有一个主要使用 C++ 的项目,但我正在尝试链接到 Objective-C++ 库。我有一个看起来像这样的标题:

CPlus.h:

CPlus.mm:

当我将 Objective-C++ 标头导入我的代码时,我最终会遇到来自 iPhone SDK 内部的数千个错误。似乎有些东西正在将一种语言视为另一种语言。对不起,如果这个描述很差,我是新手,有点困惑。

你可以在 C++ 类中包含 Objective-C / Objective-C++ 类型吗?您需要做一些特别的事情来包含其他类型的标题吗?

0 投票
5 回答
4749 浏览

python - Objective-C 字符串操作

目前我正在开发一个软件,目前它是 100% 使用 iPhone 3.0 SDK 用 Objective-C 编写的。

我来到了一个十字路口,我需要做很多事情或字符串连接,更具体地说,是 NSString 连接,到目前为止,我一直在这样做:

Objective-C 字符串连接:

现在您可以想象,当我尝试将 6 个 NSString 连接在一起时,这将变得非常难以阅读。

起初我考虑在一个 Objective-C++ 类中混合来做我的字符串连接并将它交给我的 Objective-C 类,然后我可以使用 C++ 的简单字符串连接,例如:

C++ 字符串连接:

我可以使用C字符数组,但这会更难阅读。

然后让我感到震惊的是,我可以在 Cocoa 中使用 Python 或 Ruby 桥接器(与基于 C 的语言相比,它们提供了正则表达式的额外好处和出色的字符串处理)。

即使我只编写了少量的 Ruby 和 Python,这对我来说也是有意义的,因为它们被称为字符串操作语言。Perl 我决定跳过,因为 Xcode 不直接支持它。

我也对性能感兴趣,所以我正在寻找最快的方法来进行字符串连接。

所以我该怎么做?我在 Objective-C 中是否缺少一些非常简单的方法来一次连接多个字符串,比如 10 个字符串?还是我的想法是使用 Python 或 Ruby 类方法返回连接或正则表达式修改的字符串,而不像听起来那么疯狂?也许我什至错过了另一种方法来做到这一点?

更新: 是的。似乎我很疯狂地考虑引入另一种语言运行时来进行字符串操作,特别是因为我注意到我关心速度。添加桥可能比简单地使用 NSString/NSMutableString 慢得多。

0 投票
5 回答
3113 浏览

c++ - 将 C++ 方法传递给 Objective-C 方法

我有一个 C++ 类“ Expression”,其中包含我想在我的 Objective-C 类“ GraphVC”中使用的方法。

还有我的 Objective-C 类:

我认为与 C++ 对象相反,传递接受 double 并返回 double 的函数指针是最简单的,但我在使用functional.h. 从 Objective-C 使用我的 C++ 方法的最佳方式是什么?

编辑:感谢您的快速回复。请允许我详细说明一下...我有一个用 C++ 编写的后端,我在其中操作表达式类型的对象。有理数、多项式、单项式等的子类。我最初的想法是使用mem_fun from ,但我无法以这种方式编译代码。我在使用 bind1st 绑定this指针时也遇到了麻烦。

  • 编写一个 Objective-C 包装器是可能的,但我宁愿使用已经存在的evaluate()函数,而且我不想破坏后端和 iPhone GUI 类之间的清晰分离。
  • 我不能有全局表达式或使用静态方法(我需要绘制任意Expression实例。

我应该更明确地说明我需要将 C++ 成员函数(不是静态函数或现有 C 函数)传递给 Objective-C 对象。有没有人幸运地使用 C++<functional>将成员函数转换为可以在 Objective-C 对象中使用的指针,或者我应该使用 Objective-C 包装器?

0 投票
5 回答
1662 浏览

c++ - 使用来自 C++ 文件的 Objective-C++ 文件

我有一个 c++ 应用程序,我正在尝试移植到 iPhone 并开始尝试用 obj-c++ 纹理加载器替换我的 c++ 纹理加载器,以便我可以使用可可库。

我的很多 c++ 文件(.cpp 文件)调用纹理加载器,例如:

但是每当我尝试创建一个具有 Obj-C 代码的 TextureLoader 类(在 .mm 文件中)时,我不得不将调用类也设为 .mm 文件。

我想避免使用 .mm 的蠕变。我该怎么做?甚至可能吗?

基本上我有一个 .mm 文件...

并且是 c++ 类的一部分(或者此时它是 obj-c++ 吗?)

我希望能够从 .cpp 文件中使用它,而不必将调用类也设为 .mm

有没有办法做到这一点?

干杯,伙计们。

0 投票
1 回答
408 浏览

objective-c++ - Apples Objective-C++ 2.0 编译器在其他平台上是否可用(并且可用)?

我知道它是 gcc 的一部分,但它可以在 Windows 上使用吗?带有垃圾收集器的(核心)运行时移植起来似乎非常复杂,所以我怀疑它是否会巧合地移植。我不想要任何 Cocoa 的东西,只想要纯金属的基本支撑。

其他 unix 版本 Solaris/FreeBSD/AIX/HP-UX 呢?