問題タブ [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 投票する
1 に答える
6253 参照

ios - Objective C と Swift の相互運用性により、「拡張機能に格納されたプロパティが含まれていない可能性があります」というエラーが発生する

Objective C で作成された以前のアプリの 1 つに取り組んでいました。それに新しいモジュールを追加する必要があり、その特定のモジュールに Swift を使用することにしました。

私は Objective C で呼び出されたクラスを持っています。いくつかの新しい とHomePageを追加したかったのです。そのために、新しい Swift ファイルを追加し、既存のクラスを次のように拡張しました。IBActionIBOutlet

IBActions のみを追加すると、すべてが完全に機能します。しかし、IBOutlet を追加すると、コンパイラは次のようなエラーをスローします。

拡張機能には保存されたプロパティが含まれていない可能性があります

それを修正するには、2つの方法があります。

  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プロパティが [P] ではなく [AnyObject] として迅速に変換される理由

Swift では、次のようになります。

更新: 解決策が見つかりました

または提案されたnewacctのように

は次のように翻訳されます。

0 投票する
1 に答える
373 参照

python - ctypes から Fortran 関数の出力を取得できません

ctypes を使用して Python から Fortran 関数を呼び出そうとしています。サブルーチンと関数 (両方とも同じ機能) から結果を取得しようとしましたが、サブルーチンがうまく機能しているにもかかわらず、関数から期待される出力を取得できません。問題は、サブルーチンの代わりに Fortran 関数を使用するライブラリがたくさんあることです。Fortran 関数と ctypes に問題はありますか?

Fortran コードの一部:

私が使用しているPythonコードは次のとおりです。

関数については、多くのことを試しましたが、正しい結果が得られませんでした。プログラムの一部を実行するには、次を試してください。

サブルーチン呼び出しは期待されるベクトルを返しますが、関数呼び出しはヌル ベクトルまたはガベージでいっぱいのベクトルを返します。

0 投票する
3 に答える
3254 参照

c++ - C 標準ライブラリの関数を C++ で使用できますか?

現在、私は C と C 標準ライブラリに慣れてきています。後で C++ を使用するときに、この分野の知識が役立つかどうか疑問に思っています。

したがって、C 標準ライブラリによって提供される関数を C++ の設定で使用できるかどうか、また実際に使用することが理にかなっているのかどうか、またその理由を知りたいです。

0 投票する
1 に答える
880 参照

objective-c - Objective-C クラスから継承しない Swift クラスに @objc 属性を使用する

Using Swift with Cocoa and 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 として宣言できます。

私は何かを誤解していますか?