c++ - 苹果操作系统 : using detachNewThreadSelector method inside a C++ class method

标签 c++ objective-c wrapper

我有一个 C++ 类方法,我需要用所有参数调用“detachNewThreadSelector”方法。
这就是问题所在,因为我的类(class)不是 Objective-C 我没有自指针。我也不知道如何从我将设置为选择器的方法中调用类方法。
如果我的问题不清楚,请务必提问,我不是来自英语国家。
这是一些代码。

ALuint AudioController::PlayStream(const string& asset)  
{  
        //attach to a thread  
    [NSThread detachNewThreadSelector:(SEL)selector     toTarget:(id)selfwithObject:(id)argument]

}

void AudioController::RotateThread(const string& soundKey)  
{  
}

如您所见,我如何将 RotateThread 方法作为选择器传递给“detachNewThreadSelector”,以及我从哪里获得自指针。

非常感谢任何帮助。
谢谢

最佳答案

你不能这样做。它不像“我从哪里获得 self 指针?”那么简单。真正的问题是,“我从哪里得到可以响应消息的东西?”因为 C++ 类不能

Objective-C的类、对象和方法与C++的类、对象和方法完全不同。这两种语言使用相同的术语并出于相似的目的使用这些东西这一事实让很多人感到困惑,但需要明确的是:它们是完全不同的东西,在两种语言中以截然不同的方式工作。恰当的例子:C++ 方法只是被调用,而不是像 Objective-C 方法那样基于选择器进行分派(dispatch)。 C++ 类甚至不是对象。

这里有两个真正的选择:

  1. 创建一个具有您想要的行为的 Objective-C 类。

  2. 使用 C++ 并发解决方案。

关于c++ - 苹果操作系统 : using detachNewThreadSelector method inside a C++ class method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3633689/

相关文章:

ios - 如何在 iOS 上获取有关传感器的信息?

java - 如何为任何用户定义的类创建包装类

c++ - unsigned char 变量不递增

c++ - 使用模板的固定长度字符串

objective-c - 什么是兼容 ARC 的适用于 iOS 的优秀 zip 库?

ios - 如何知道应用程序启动时呈现哪个 View Controller

python - 使用 functools.wraps 装饰器尝试类的每个函数

php - 有人使用过这个 Highrise API PHP Wrapper 库吗?我需要帮助验证

c++ - 在等待用户输入时避免无限循环?

c++ - std::array<char, N> 的大小是多少?