繁体   English   中英

将C ++与Objective-C和Java混合

[英]Mixing C++ with Objective-C and Java

您好,我注意到从C ++调用Java方法时,我们使用JNI帮助器,并且在调用方法中必须声明此方法,但是在Objective-C上,我们不调用任何与runOnUiThread等效的方法吗? 我想知道为什么会这样,这与objective-c和c ++可以混合在同一文件(.mm)中有关吗?

activity.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            // your code
        }

您的假设是正确的; 与Java或Swift相比,Objective-C(++)与C ++交织在一起,您可以将Objective-C代码与C ++代码混合使用。 末尾的.mm文件实际上是向编译器提示这种混合的意图。 对于Java和Swift,您需要像JNI这样的“桥梁”来访问另一种语言的人工制品。

通常在Objective-C中,主线程(即UI线程)的任何调用都将默认在主线程中执行,除非您将其显式分配给另一个异步线程。 因此,显式的runOnUiThread是多余的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM