問題タブ [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.

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

swift3 - UnsafeMutablePointerスイフト3

swift3の次の行でエラーが発生します。


'UnsafeMutablePointer<Bytef>'タイプ '(UnsafeMutableRawPointer)' の引数リストを持つタイプの初期化子を呼び出すことはできません

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

swift - Swift 3で不透明なポインタから型付きポインタを作成するには?

Swift 3 に変換すると、コンパイラ エラーが発生します。

タイプ '(UnsafeMutableRawPointer?)' の引数リストでタイプ 'UnsafeMutablePointer' の初期化子を呼び出すことはできません

不透明なポインターから型付きポインターを作成しようとすると、次のようになります。

これが機能しないのはなぜですか?

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

c - Swift で C を使用する - strlcpy - タイプ 'UnsafeMutablePointer<_>' の値を変換できません

Swift 3.0 で strlcpy を使用しようとしていますが、「タイプ 'UnsafeMutablePointer<_>' の値を予期される引数タイプ 'UnsafeMutablePointer!' に変換できません!」というエラーが表示され続けます。

これが私のコードです

ここで、VidyoClientInEventLogIn は次のとおりです。

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

swift3 - swift 3 CFArrayCreate の使用方法

配列から CFArray を作成したい

以前はSwift 2で、これを行うことができました:

Swift 3 では、CFArrayCreate がUnsafeMutablePointer<UnsafeRawPointer?>!2 番目のパラメータとして期待されています

私がそれをやろうとした1つの方法は次のとおりです:

ただし、これは [0, 1, 2, 3] の代わりに [rawPointer の値、ガベージ、ガベージ、ガベージ] の要素を持つ CFArray を作成します。

UnsafeMutablePointer<UnsafeRawPointer?>!このパラメーターを配列から作成するにはどうすればよいですか?

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

uibezierpath - Swift 3 での UnsafeMutablePointer の使用

UIBezierPath に次の拡張機能を使用しています。

これはサイトからです:

https://oleb.net/blog/2015/06/c-callbacks-in-swift/

ただし、これは次の行の Swift 3 で中断されます。

次のエラーが表示されます。

これは Swift 3 の変更に関連していることを理解しています。UnsafeRawPointerMigration

https://swift.org/migration-guide/se-0107-migrate.html

ただし、これを Swift 3 に移植する最善の方法がよくわかりません。上記の拡張機能の更新されたコードを使用して、この点に関して何らかの助けを提供できますか?

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

ios - 配列を UnsafeMutablePointer に変換する方法スイフト3.0?

以前のバージョンの Swift で実行可能なコードは次のとおりです。

UnsafeMutablePointer<UnsafeRawPointer?>Swift 3.0 の変更後、 CFDictionary を作成するためにキーと値の配列を変換する必要があります。

こちらです:

Bad Access エラーが発生します。

そしてドキュメントを読んだ後、私はこのコードをコンパイルしようとしています:

しかし、エラー Generic parameter 'Instance' could not be inferredが行Unmanaged.passUnretained( array ).toOpaque()に表示されます

プログラムで CFDictionary を作成する方法がわかりません。

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

swift - Swift の相互非オプション参照サイクル

次の使用例を検討してください。

一部のゲームのモデルでは、Playerクラスがあります。それぞれPlayerunowned let opponent: Player対戦相手を表す があります。これらは常にペアで作成され、 aはオプションではないため、Player常に a が必要opponentです。ただし、これをモデル化するのは非常に困難です。1 人のプレイヤーをもう 1 人のプレイヤーより先に作成する必要があり、最初のプレイヤーは 2 番目のプレイヤーが作成されるまで対戦相手を持たないからです!

いくつかの醜いハッキングを通じて、私はこの解決策を思いつきました:

これは非常にうまく機能します。しかし、私はopponent定数に変わるのに苦労しています。1 つの解決策は、 private に裏打ちされたopponentなしで計算されたプロパティを作成することですが、これは避けたいと思います。setvar

Swift ポインターを使ってハッキングを試みたところ、次のようになりました。

しかし、これはセグメンテーション違反を引き起こします。さらに、 を使用してデバッグすると、が初期化lldbされた直後に次のことがわかります。p1

しかし、関数の最後に、lldb は次のように表示します。

したがって、p1正しく を指していますp2が、p2それでも古い を指していp1ます。しかも、p1実際に住所が変わった!

私の質問は 2 つあります。

  1. 相互の非オプション参照のこの構造を作成するための、よりクリーンで「迅速な」方法はありますか?

  2. UnsafeMutablePointerそうでない場合、上記のコードが機能しない Swift の s などについて、私は何を誤解していますか?

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

c - C型floatのSwift 3 UnsafeMutablePointer初期化**

Swift 3 内で、入力を受け入れる C オブジェクトにデータを送信する必要がありfloat **ます。

Swift 2 では、 a を宣言しUnsafeMutablePointer< UnsafeMutablePointer<Float32>>、swift Array を構築し (init のみ!)、これをポインターに渡していましたが、うまくいきました。

これは、Swift 3 ではすべて壊れています。

  • float**Cスタイルを渡して初期化する最も迅速な方法は何ですか?
  • に値を割り当てる最良の方法は何UnsafeMutablePointer< UnsafeMutablePointer<T>>ですか?

ドキュメンテーションには、 forT **を使用する必要があると書かれていますAutoreleasingUnsafeMutablePointer<T>が、実際に作成することはできませんでした!

上記の例では、配列は実際には気にしないことに注意してください。既知の容量を使用して Pointer を直接初期化できれば、そうします。

: UnsafeRawPointer の予期されるユース ケース セクションでは、 C 配列や C バッファーなどの便利な状況について説明していますが、上記の構造のそのようなメソッドを変換することは明らかではありません!

0 投票する
2 に答える
21447 参照

swift - Swift: タイプ 'UnsafeMutablePointer' の値を予期される引数タイプ 'UnsafeMutablePointer' に変換できません

Swift 3に更新した後、コードに少し問題があります。変換前にこのコードがありました:

そして、私はそれをこのコードに変換し、3行目にエラーが発生しました

...型「UnsafeMutablePointer」の値を期待される引数型「UnsafeMutablePointer」に変換できません

これを取り除く方法を知っている人はいますか?