問題タブ [unsafemutablepointer]
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.
swift - UnsafeMutablePointer.pointee および didSet プロパティ
作成した構造体の監視対象プロパティで UnsafeMutablePointer を使用すると、予期しない動作が発生しました (Xcode 10.1、Swift 4.2)。次のプレイグラウンド コードを参照してください。
一見すると、UnsafeMutablePointer のポインティを監視対象のプロパティに変更しても、実際にはプロパティの値は変更されません。また、ポインターをプロパティに割り当てる操作によって、didSet アクションが起動されます。ここで何が欠けていますか?
swift - UnsafeMutablePointer の実部を Float として抽出し、それを配列に格納する
私はこの機能を持っています
そしてこの呼び出し
次のように、列挙arrayComplex
して実数部分を通常の配列に抽出したい
ライン
は正しくありません。
item
ですUnsafeMutablePointer<Float>
どうすればそれを行うことができますか?
ありがとう。
=======================
これはoutput
c - オーバーライドされる Swift Mutable Pointer
だから私は2つの画像で深度検出を行うためのコードをいくつか持っています。深さの検出は、ネイティブ C コードで行われています。C ライブラリを呼び出すために、パラメーターとして渡す Int16 の配列を作成する別の関数があります。
ただし、C 呼び出しのパラメーターで関数呼び出しを直接行うと、最初の関数呼び出しが上書きされ、同じパラメーターが 2 回渡されます。
これが私の言いたいことです。これは私の C ライブラリーへの呼び出しです。
get face details 呼び出しは次のようになります。
そして、私はこの拡張機能で可変ポインタを取得しています:
したがって、上記のImageProcessing.depthDetection
呼び出しを実行すると、 myleftFace
とrightFace
arrays が実際に異なり、次のように表示されることがわかります。
しかし、Cでそれらを印刷すると、それらは両方とも同じrightFace
配列であり、次のようになります(Cログのフォーマットは異なりますが、左と右の両方に同じデータがあることがわかります):
では、なぜ最初のgetFaceDetails
出力が 2 番目の出力によって上書きされるのでしょうか?
すべての中で最も奇妙な部分は、変数に結果を割り当ててgetFaceDetails
から、ここで行っているようにその変数をパラメーターとして渡す場合です。
それから突然それが機能します!C の print ステートメントは、左右の面で異なるデータを表示します。パラメータに関数呼び出しを直接渡すと、間違ったデータが含まれます。
それで、ここで何が起こっているのですか?最初の方法で後者と同じ結果が得られないのはなぜですか?