Objective-C引用指针声明获取错误

Ang*_*gus 1 objective-c

我有这个宣言.

- (BOOL)getNHPData:(REMOTE_MESS_ID)msgId withEvent:(RSEvent*&)pEvent;
Run Code Online (Sandbox Code Playgroud)

RSEvent**也试过,但我得到这个错误2次

Expected ')' before RSEvent
Run Code Online (Sandbox Code Playgroud)

为什么会如此.

Bar*_*ark 5

Objective-C是C语言的超集,没有引用.如果要在Objective-C中使用C++样式引用,则必须编译为Objective-C++(正如您所料,Objective-C++是C++的超集).使用.mm扩展自动在Xcode中使用Objective-C++.

如果有问题的方法是将从Objective-C中使用的公共API,我强烈建议使用指向指针(RSEvent**)而不是指针引用.在头文件中使用Objective-C++使用Objective-C++"感染"客户端(除非你非常小心).Objective-C++需要花费更长的时间来编译Objective-C,并且最终会遇到不可避免的C与C++不兼容问题.标准做法是尽可能地从公共API中隐藏Objective-C++.