错误:使用未声明的标识符“self”c++-objective c混合

现代战斗

我目前正在使用 ue4 完成我的 iOS 游戏。我正在使用一些特定的 iOS 代码并尝试使用“self”变量调用方法

void Aaccessactorios::Shareoption() {
    [self Sharebutton];//ios                 
}

代码位于预处理器标签#if PLATFORM_IOS 和#endif 中

我想我已经在我的 cpp 文件的开头声明了 self 变量:

-(id)init
{
    self = [super init];

    return self;
}

其他论坛提到虚幻引擎最后编译所有cpp .mm,所以我认为这不是问题。

self 变量在目标 c 部分周围使用,因此它对我的代码至关重要。如何正确混合代码并声明我的自我变量?

谢谢

编辑:这是我尝试重新创建的部分https://answers.unrealengine.com/questions/422323/callback-from-objective-c-back-to-the-c-layer.html

移动本

我一直混合使用 C++ 和 Obj-C。Obj-C 类实例与 C++ 实例不同。C++ 类实例具有this. 没有selfObj-C 类实例具有self. 你可以在这里读更多关于它的内容:

黑白Objective C的自我和C++的区别?

假设根据您编写的内容,您有一个 C++ 类Aaccessactorios不清楚是谁定义的Sharebutton如果它在 C++ 类中,那么你可以称它为

this->Sharebutton();

或者干脆

Sharebutton();

如果Sharebutton属于 Obj-C 类,那么您需要让 C++ 具有指向 Obj-C 类实例的指针,或者将其传递给函数。后者的一个例子是:

void Aaccessactorios::Shareoption(ObjCClassObj *obj) {
    [obj Sharebutton];//ios                 
}

在该代码参考链接中,您可以看到他们实际上是前者。

 class IOSMediaPlayerController
 {
 public:
     IOSMediaPlayerController();
     ~IOSMediaPlayerController();
     void startPlayback();
     void stopPlayback();
     void callbackFunc();

     #if PLATFORM_IOS
     IOSMediaPlayerControllerObj *playerObj;
     #endif    
 };

在这里你可以看到这playerObj是一个指向 Obj-C 对象的引用(指针)。这在构造函数中用 this 创建

 IOSMediaPlayerController::IOSMediaPlayerController()
 {
     #if PLATFORM_IOS
     playerObj = [[IOSMediaPlayerControllerObj alloc] init];
     #endif
 }

然后被调用

 void IOSMediaPlayerController::startPlayback()
 {
     #if PLATFORM_IOS
     [playerObj startPlayback];
     #endif
 }

注意示例代码没有调用self,它调用构造函数创建的实例playerObj

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用未声明的标识符Objective-C代码

来自分类Dev

Objective-C:使用未声明的标识符

来自分类Dev

在Objective c中使用Swift类。发生未声明的标识符错误

来自分类Dev

在Objective c中使用Swift类。发生未声明的标识符错误

来自分类Dev

iOS:Objective-C 创建类属性错误:使用未声明的标识符

来自分类Dev

CGImageDestinationRef的Objective-C未声明标识符

来自分类Dev

Objective-c:未声明的标识符 applicationDidEnterBackground

来自分类Dev

Objective-C-使用未声明的标识符(定义后)

来自分类Dev

使用简单宏C ++的未声明的标识符错误

来自分类Dev

错误C2065:“名字”:未声明的标识符

来自分类Dev

Xcode C ++未声明的标识符错误

来自分类Dev

C ++数组未声明的标识符错误

来自分类Dev

错误C2065:“框架”:未声明的标识符

来自分类Dev

C++ 未声明的标识符错误

来自分类Dev

C ++错误:预期的不合格ID和使用未声明的标识符错误?

来自分类Dev

在头文件(C)中使用未声明的标识符

来自分类Dev

C ++语义问题:“'使用未声明的标识符'余额'”

来自分类Dev

未声明的标识符C ++

来自分类Dev

C中的计数排序-错误:使用未声明的标识符

来自分类Dev

预期的标识符或'('使用typedef枚举Objective-C

来自分类Dev

使用函数返回指向函数的指针时出现未声明的标识符错误(Visual Studio上为C ++)

来自分类Dev

错误C2065:模板功能中未声明的标识符

来自分类Dev

托管代码中未声明的标识符错误... Visual C#

来自分类Dev

无法解析未声明的标识符C ++

来自分类Dev

C ++继承/未声明的标识符问题

来自分类Dev

带有struct'未声明标识符的C ++类

来自分类Dev

在目标c中获取未声明的标识符

来自分类Dev

未声明的标识符 C2065 "P"

来自分类Dev

未声明 Visual c++ 标识符

Related 相关文章

  1. 1

    使用未声明的标识符Objective-C代码

  2. 2

    Objective-C:使用未声明的标识符

  3. 3

    在Objective c中使用Swift类。发生未声明的标识符错误

  4. 4

    在Objective c中使用Swift类。发生未声明的标识符错误

  5. 5

    iOS:Objective-C 创建类属性错误:使用未声明的标识符

  6. 6

    CGImageDestinationRef的Objective-C未声明标识符

  7. 7

    Objective-c:未声明的标识符 applicationDidEnterBackground

  8. 8

    Objective-C-使用未声明的标识符(定义后)

  9. 9

    使用简单宏C ++的未声明的标识符错误

  10. 10

    错误C2065:“名字”:未声明的标识符

  11. 11

    Xcode C ++未声明的标识符错误

  12. 12

    C ++数组未声明的标识符错误

  13. 13

    错误C2065:“框架”:未声明的标识符

  14. 14

    C++ 未声明的标识符错误

  15. 15

    C ++错误:预期的不合格ID和使用未声明的标识符错误?

  16. 16

    在头文件(C)中使用未声明的标识符

  17. 17

    C ++语义问题:“'使用未声明的标识符'余额'”

  18. 18

    未声明的标识符C ++

  19. 19

    C中的计数排序-错误:使用未声明的标识符

  20. 20

    预期的标识符或'('使用typedef枚举Objective-C

  21. 21

    使用函数返回指向函数的指针时出现未声明的标识符错误(Visual Studio上为C ++)

  22. 22

    错误C2065:模板功能中未声明的标识符

  23. 23

    托管代码中未声明的标识符错误... Visual C#

  24. 24

    无法解析未声明的标识符C ++

  25. 25

    C ++继承/未声明的标识符问题

  26. 26

    带有struct'未声明标识符的C ++类

  27. 27

    在目标c中获取未声明的标识符

  28. 28

    未声明的标识符 C2065 "P"

  29. 29

    未声明 Visual c++ 标识符

热门标签

归档