今天,我正在从C++到Objective-c方法的回调传递。
最后,我解决了这个问题,但是有一些代码让我困惑。
在Objective-C,人们日常使用的块来实现回调,块声明如下:'void(*)(int)'与'void(^)(int)'相同吗?
返回类型(^块名称)(parameterTypes)
我也了解C++的回调,这样定义的相同类型的回调:
返回类型(*了funcName)(parameterTypes)
当我路过一个回调从C++到Objective-C编译器警告我:
"Cannot initialize a parameter of type 'void (^)(int)' with an rvalue of type 'void (*)(int)"
最后,我改变^
到*
,它的工作原理。我想知道,定义中^
和*
之间有什么区别,是否具有相同的行为?
在C++'^'是按位异或 – DimChtz
@DimChtz只是因为它是在Objective-C的。上下文有所不同。 – trojanfoe