问题标签 [language-interoperability]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4337 浏览

objective-c - 如何让我的 Objective-C 类符合 Swift 的 `Equatable` 协议?

我有一个 Objective-C 类(恰好是一个按钮,但这并不重要),在我的(混合语言)项目的另一部分,我有一个这些按钮的数组,我想获得索引使用该find()方法的按钮。像这样:

但我得到了

类型 'ImplicitlyUnwrappedOptional' 不符合协议 equatable

好的,让我们使用 Objective-C 并实现 ButtonThing <Equatable>。但它不承认这一点。

那我该怎么办?现在我正在围绕它进行构建,强制数组成为 NSArray 并使用indexOfObject. 但这很丑陋。并且令人沮丧。

0 投票
1 回答
6253 浏览

ios - 目标 C 和 Swift 互操作性导致错误“扩展可能不包含存储的属性”

我正在开发我以前在 Objective C 上完成的应用程序之一。我需要向它添加一个新模块,我决定对那个特定模块使用 Swift。

我有一个HomePage在 Objective C 中调用的类,我想在其中添加一些新IBAction的 s 和IBOutlets。为此,我添加了一个新的 swift 文件并扩展了现有的类,例如:

如果我只添加 IBActions,一切都会完美运行。但是当我添加 IBOutlet 时,编译器会抛出如下错误:

扩展可能不包含存储的属性

为了修复它,我有两种方法,

  1. 在我的 Objective C 类本身中声明出口
  2. 将整个 Objective C 类转换为 Swift 并在那里声明属性

有没有其他方法可以解决这个问题?

0 投票
1 回答
439 浏览

c - Fortran 和 c 互操作性

我一直在写一个Fortran和C接口,但总是出现错误。我不确定为什么会出现问题。原始C代码如下:

并且当我编译和链接它时,它可以运行并且有正确的结果。但是当我在 Fortran 代码中编写 rosenbrock_f 并使用内部模式 iso_c_binding 使它们可互操作时,它不能有结果,只能说

这是 C 和 Fortran 代码:

fortran 模块:

fortran 程序:

有人可以帮我吗?我不知道为什么会有内存无效引用。

0 投票
1 回答
2934 浏览

objective-c - 以协议为参数的 ObjC 泛型集合被翻译为 [AnyObject]

为什么protocols属性在swift中被翻译为[AnyObject],而不是[P]

在 Swift 中,它看起来是这样的:

更新:找到解决方案

或喜欢建议的 newacct

被翻译成:

0 投票
1 回答
373 浏览

python - 无法从 ctypes 获取 fortran 函数输出

我正在尝试使用 ctypes 从 Python 调用 Fortran 函数。我试图从子例程和函数(都具有相同的功能)中获取结果,但是我无法从函数中获得预期的输出,而子例程运行良好。问题是我有很多带有 Fortran 函数而不是子例程的库。Fortran 函数和 ctypes 有什么问题吗?

一段 Fortran 代码:

我正在使用的 Python 代码是:

对于这个功能,我尝试了很多东西,但我从来没有得到正确的结果。要运行该程序,请尝试:

子例程调用返回预期的向量,而函数调用返回空向量或充满垃圾的向量。

0 投票
1 回答
4263 浏览

c# - Use Python alongside C# in Windows UWP app

I started writing an application in Python, but I now want to switch to C# and UWP. I know that you cannot write a UWP app in Python, but I am trying to see if I can write some code in Python and access that code from C#.

For example, writing a class in Python that C# code can access as well. Is that possible? And if so, can Python access Microsoft's UWP APIs?

The main code will not be written in Python; that would be impossible. But can interoperability between C# and Python exist, perhaps with IronPython (.NET's Python)?

And how would I set up such a Visual Studio project? I have Python Tools for Visual Studio installed, but there was no built-in option to add a Python file to my UWP app.

0 投票
1 回答
62 浏览

c - Swift调用C API时如何处理指针

c Lib API:mycapi.h

添加 myapi.h 作为模块

我的快速代码:

所以我的问题是:

  1. 为什么我仍然可以使用o after h.destroy()
  2. 我必须破坏hando吗?
0 投票
3 回答
3254 浏览

c++ - C 标准库中的函数可以在 C++ 中使用吗?

现在我正在熟悉 C 和 C 标准库,我想知道我在这方面的知识在以后转向使用 C++ 时是否有用。

因此,我想知道,我是否可以在 C++ 设置中使用 C 标准库提供的函数,以及实际这样做是否有意义以及为什么有意义。

0 投票
1 回答
880 浏览

objective-c - 对不从 Objective-C 类继承的 Swift 类使用 @objc 属性

使用 Swift 与 Cocoa 和 Objective-C (Swift 2.1) 文档的互操作性部分的以下段落似乎表明有一种方法可以使用不从 Objective-C 类继承的 Swift 类来实现互操作性。

当您创建从 Objective-C 类继承的 Swift 类时,该类及其成员(与 Objective-C 兼容的属性、方法、下标和初始化程序)会自动从 Objective-C 中获得。在某些情况下,您需要更精细地控制 Swift API 如何向 Objective-C 公开。如果您的 Swift 类不是从 Objective-C 类继承的,或者如果您想更改接口中符号的名称,因为它暴露给 Objective-C 代码,您可以使用 @objc 属性。

我尝试了以下操作:

但不幸的是,它给出了一个编译错误:只有继承自 NSObject 的类才能声明为@objc

我误解了什么吗?

0 投票
1 回答
895 浏览

java - 通过 Java 反射找到 Scala 类型的伴生对象的可靠方法是什么?

我正在编写 Java(不是 Scala)代码,其中有一个 JavaClass参考,指的是 Scala 类型T

我现在想通过仅使用 Java 反射来发现 JavaClass引用和对应的单例实例,object T然后调用该伴随对象中的方法。

我对生成的 Scala 代码进行了逆向工程,以编写以下 Java 代码:

这看起来不是很健壮——它可能会随着未来的 Scala 编译器随时改变。有没有更健壮的方法?我也愿意调用 Scala API(来自 Java)来发现伴随实例。