你好,我注意到从C ++调用Java方法时,我们使用JNI帮助器,在调用的方法中必须声明它,但是在Objective-C上,我们不调用任何与runOnUiThread等效的方法吗?我想知道为什么会这样,这与objective-c和c ++能够混合在同一文件(.mm)中有关吗?
file_get_contents
答案 0 :(得分:1)
您的假设是正确的;与Java或Swift相比,Objective-C(++)与C ++交织在一起,您可以将Objective-C代码与C ++代码混合使用。结尾的.mm
文件实际上是向编译器提示这种混合的意图。对于Java和Swift,您需要像JNI这样的“桥梁”来访问另一种语言的人工制品。
与Objective-C中一样,默认情况下,主线程(即UI线程)的任何调用都将在主线程中执行,除非您将其显式分配给另一个异步线程。因此,显式runOnUiThread
是多余的。