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

c++ - 带有一些 Objective-C++ 的 Objective-C,调用普通的 c++ 方法“引用自”问题

我为 iPhone 制作了一个 Objective-C 项目。我只有一个 cpp 类,soundEngine 取自一些 Apple 演示。现在我正在尝试合并用 Objective-C++ 编码的 OpenFeint。我通过简单地拖动文件并在项目设置中勾选“在Objective-C中调用C++默认ctors / dtors”来放入代码。我什至没有从我的代码中提到它。当我点击 Build 时,我的 Objective-C 代码找不到 cpp 文件的方法。所有的类文件都会编译,包括 OpenFeint 的,但在链接阶段它会显示其中几个错误:“_SoundEngine_SetDisabled”,引用自:someClass.o

请注意,当它报告这些链接错误时,它会在方法前面添加一个下划线。

PS 我知道对于 OpenFeint,首先应该做的就是将文件转换为 .mm,但如果可能的话,我不想在这个开发阶段走这条路。我打算尝试为它创建一个包装器 Objective-C++ 类。我读到有人设法做到了。

0 投票
3 回答
343 浏览

objective-c - 没有 iPhone 应用的 Debug 信息

我编写了一个使用第三方库的 iPhone 应用程序。我成功交叉编译了这个库,一切都很顺利。但是当我想调试应用程序时,也能够调试库是有意义的。所以我还用调试信息编译了外部库(使用 gcc 选项 -ggdb)。但是当我想调试它时,我得到了正确的符号名称,但位置总是错误/非常奇怪(locale_facets.tcc:2505 或 iostream:76)。例如,堆栈跟踪可能如下所示:

有谁知道这些错误的位置来自哪里?

0 投票
2 回答
10240 浏览

c++ - 未找到符号,预计在平面命名空间 ObjC++ 中

我可能有一个简单的问题,但是在编译过程中没有信息性错误或警告来提醒我出了什么问题。

我有一个包含 C++ 主文件和 ObjC 头文件的 Objective-C++ 应用程序。

它构建得很好,但是在运行时,它会给出以下错误消息:

再多的谷歌搜索都没有找到解决方案,我敢肯定我只是错过了某个地方的编译或构建选项。

“AppController.h”包含在目标中(选中),并包含在#importObjC 类文件中。

任何帮助是极大的赞赏。

ObjC++ 经常让我头疼。

谢谢,

-S!

0 投票
2 回答
558 浏览

c++ - Objective-C++ 为 iPhone 编译,但不是模拟器

我有一个要添加到我的 iphone 项目中的 C++ 库。

在一个头文件中我声明

对于具有 Release 设置的 iPhone 设备,这编译得很好。但是,无论有没有调试信息,它都拒绝为模拟器编译。

它给出了错误

有没有办法解决这个问题,还是我必须只定义具体的 C++ 类?

0 投票
6 回答
1874 浏览

c - alloca(n) 和 char x[n] 有什么区别?

和有什么区别

...其中size是一个变量,其值在编译时未知。

0 投票
3 回答
2576 浏览

objective-c - 如何在objective-C++中返回C++指针

我有以下 Objective-C++ 标头以及返回此指针的简单方法。

我创建了简单的方法

一切似乎都有效,直到我真正尝试在另一个文件中使用该对象

它抱怨:错误:在初始化时无法将 'objc_object*' 转换为 'MyCPPObje *'。

该方法似乎是返回一个objective-c对象,但我特意请求了一个C++指针。

MyCPPObj 是一个诚实的 C++ 类:

我该如何解决?

0 投票
0 回答
316 浏览

iphone - 发布的对象崩溃应用程序

我正在使用 Objective-C++ (+Boost) 进行 iPhone 开发。

我处于一个相当紧凑的循环中,需要分配和释放某个对象。

代码是这样的。

FObj 对象类似于

在 FObj 的实现中有一个 dealloc 方法:

恐怕如果我不发布,那么“MyCPPObj”就会堆积起来。但是释放会使应用程序在第一个循环后崩溃。我究竟做错了什么?

或者我应该制作 cppobj 和 boost::shared_ptr 吗?

(当objective-C++ 对象被删除时,boost 共享指针会自动释放它们的对象吗?)

0 投票
2 回答
836 浏览

iphone - 制作 ARToolKitPlus dylib 后,ARToolkitPlus 的头文件出现问题!

我正在为 iPhone 编写这个增强现实应用程序,我决定使用ARToolKitPlus。使用 QMake,我创建了 xcode 项目文件,随后创建了 libArToolKitPlus.dylib

我尝试编译并运行运行良好的示例文件“simple”和“multi”。现在,由于找不到头文件,我尝试创建另一个项目并使用该库的所有其他尝试都失败了。如果我将“include”文件夹拖到 xcode 项目中,我会得到 8 个错误,而不仅仅是一个;一个是针对未找到的主要包含已解决,但随后它包含 8 个无法找到的其他标头(尽管它们位于同一文件夹中)

我收到一个错误:ARToolKitPlus/TrackerSingleMarkerImpl.h:没有这样的文件或目录

如果我拖动包含文件夹,那么我会得到一些:

  • 错误:ARToolKitPlus/TrackerSingleMarker.h:没有这样的文件或目录
  • 错误:../src/TrackerSingleMarkerImpl.cpp:没有这样的文件或目录
  • 错误:“,”标记之前的预期类名

    类 TrackerSingleMarkerImpl : public TrackerSingleMarker, protected TrackerImpl<__PATTERN_SIZE_X,__PATTERN_SIZE_Y, __PATTERN_SAMPLE_NUM, __MAX_LOAD_PATTERNS, __MAX_IMAGE_PATTERNS>

据我所知,拥有 dylib 并没有什么不同。你觉得我应该怎么做??创建一个框架会有帮助吗?

0 投票
2 回答
955 浏览

c++ - Objective-C++ 中的 boost::shared_ptr

这是对我之前提出的一个问题的更好理解。

我有以下 Objective-C++ 对象

然后我创建了一个完全不同的 obj,它需要在 boost::shared_ptr 中使用 cppobj (在这件事上我别无选择,它是我无法更改的巨大库的一部分)

我尝试了以下方法但失败了:我尝试合成 cppobj。然后我通过以下方式在“麻烦行”中创建了一个 shared_ptr:

它第一次运行良好。然后我销毁 NOBJ 并重新创建它。当我为 cppobj 它消失了。大概 shared_ptr 决定不再需要它并取消了它。

所以我需要帮助。我怎样才能让 cppobj 活着?

有没有办法在不破坏 cppobj 的情况下破坏 bsp(或者它是对 cppobj 的引用)?

0 投票
2 回答
22864 浏览

c++ - 如何在 XCode 中使用 C++ 和 Objective-C

我想在 Objective-C 中使用/重用 C++ 对象。我有一个具有类定义的 hello.h,以及用于类实现的 hello.cpp。

我在 Objective-C 函数中使用了这个类。

当我在 Xcode 中编译代码时,我收到此错误消息。

什么地方出了错?