問題タブ [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.
swift3 - UnsafeMutablePointerスイフト3
swift3の次の行でエラーが発生します。
'UnsafeMutablePointer<Bytef>'
タイプ '(UnsafeMutableRawPointer)' の引数リストを持つタイプの初期化子を呼び出すことはできません
swift - Swift 3で不透明なポインタから型付きポインタを作成するには?
Swift 3 に変換すると、コンパイラ エラーが発生します。
タイプ '(UnsafeMutableRawPointer?)' の引数リストでタイプ 'UnsafeMutablePointer' の初期化子を呼び出すことはできません
不透明なポインターから型付きポインターを作成しようとすると、次のようになります。
これが機能しないのはなぜですか?
c - Swift で C を使用する - strlcpy - タイプ 'UnsafeMutablePointer<_>' の値を変換できません
Swift 3.0 で strlcpy を使用しようとしていますが、「タイプ 'UnsafeMutablePointer<_>' の値を予期される引数タイプ 'UnsafeMutablePointer!' に変換できません!」というエラーが表示され続けます。
これが私のコードです
ここで、VidyoClientInEventLogIn は次のとおりです。
swift3 - swift 3 CFArrayCreate の使用方法
配列から CFArray を作成したい
以前はSwift 2で、これを行うことができました:
Swift 3 では、CFArrayCreate がUnsafeMutablePointer<UnsafeRawPointer?>!
2 番目のパラメータとして期待されています
私がそれをやろうとした1つの方法は次のとおりです:
ただし、これは [0, 1, 2, 3] の代わりに [rawPointer の値、ガベージ、ガベージ、ガベージ] の要素を持つ CFArray を作成します。
UnsafeMutablePointer<UnsafeRawPointer?>!
このパラメーターを配列から作成するにはどうすればよいですか?
uibezierpath - Swift 3 での UnsafeMutablePointer の使用
UIBezierPath に次の拡張機能を使用しています。
これはサイトからです:
ただし、これは次の行の Swift 3 で中断されます。
次のエラーが表示されます。
これは Swift 3 の変更に関連していることを理解しています。UnsafeRawPointerMigration
ただし、これを Swift 3 に移植する最善の方法がよくわかりません。上記の拡張機能の更新されたコードを使用して、この点に関して何らかの助けを提供できますか?
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 を作成する方法がわかりません。
swift - Swift の相互非オプション参照サイクル
次の使用例を検討してください。
一部のゲームのモデルでは、Player
クラスがあります。それぞれPlayer
にunowned let opponent: Player
対戦相手を表す があります。これらは常にペアで作成され、 aはオプションではないため、Player
常に a が必要opponent
です。ただし、これをモデル化するのは非常に困難です。1 人のプレイヤーをもう 1 人のプレイヤーより先に作成する必要があり、最初のプレイヤーは 2 番目のプレイヤーが作成されるまで対戦相手を持たないからです!
いくつかの醜いハッキングを通じて、私はこの解決策を思いつきました:
これは非常にうまく機能します。しかし、私はopponent
定数に変わるのに苦労しています。1 つの解決策は、 private に裏打ちされたopponent
なしで計算されたプロパティを作成することですが、これは避けたいと思います。set
var
Swift ポインターを使ってハッキングを試みたところ、次のようになりました。
しかし、これはセグメンテーション違反を引き起こします。さらに、 を使用してデバッグすると、が初期化lldb
された直後に次のことがわかります。p1
しかし、関数の最後に、lldb は次のように表示します。
したがって、p1
正しく を指していますp2
が、p2
それでも古い を指していp1
ます。しかも、p1
実際に住所が変わった!
私の質問は 2 つあります。
相互の非オプション参照のこの構造を作成するための、よりクリーンで「迅速な」方法はありますか?
UnsafeMutablePointer
そうでない場合、上記のコードが機能しない Swift の s などについて、私は何を誤解していますか?
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 バッファーなどの便利な状況について説明していますが、上記の構造のそのようなメソッドを変換することは明らかではありません!
swift - Swift: タイプ 'UnsafeMutablePointer' の値を予期される引数タイプ 'UnsafeMutablePointer' に変換できません
Swift 3に更新した後、コードに少し問題があります。変換前にこのコードがありました:
そして、私はそれをこのコードに変換し、3行目にエラーが発生しました
...型「UnsafeMutablePointer」の値を期待される引数型「UnsafeMutablePointer」に変換できません
これを取り除く方法を知っている人はいますか?