問題タブ [unsafe-pointers]
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.
ios - Swift 3 のデータ、UnsafeMutablePointer、および拡張属性
Swift 2 では、拡張属性を操作するための NSURL 拡張機能があり、これには次のものが含まれていました。
今、私はそれを Swift 3 に変換しようとしていますが、Xcode は不平を言い続けています。
最初の 2 つの関数を次のように変更しましたが、正しく行っているかどうかはわかりません。
最初の関数でそこにキャストData
する必要がありますか? NSData
これについてもっと良い方法はありますか?
そして、最後の関数は Xcode によって次のように変換されました。
しかし、私は得る
タイプ '(UnsafeMutableRawPointer!)' の引数リストでタイプ 'UnsafeMutablePointer' の初期化子を呼び出すことはできません
そして、私は何をすべきかわかりません。また、Xcode の変換は に固執しNSString
ます。あそこ使えないのString
?
まだ明らかでない場合は、自分が何をしているのかわかりません(笑)。元のコードはthismalloc
に基づいていましたが、そのすべてがどのように機能するのか理解できませんでしlength
たbytes
。Data
などのドキュメントを読んでみUnsafeMutablePointer
ましたが、あまり役に立ちませんでした。
誰かがこのコードを変換するのを手伝ってくれたら本当に感謝していますが、これをすべて理解するために正しい方向に私を向けるだけでも、すでに大きな助けになります. 他にどこを見ればいいのかわからず、そのすべてが本当に不可解に思えます。私が見つけた最近のいくつかの情報源は、私が知らないことをたくさん知っていると仮定しており、何を探すべきかさえ知りません.
ありがとう!
ios - Swift 3 の UnsafePointer
この質問が何度か聞かれたことは知っていますが、本当に理解できません。
Bluetooth デバイス (miband) から値を抽出したい。Swift 2では、次のように機能しました:
しかし、Swift 3 ではエラーがスローされます。
そして、それをSwift 3に移行する方法がわかりません。
ios - NSMutableData の UnsafeMutableRawPointer へのバイトが mutableData の値を更新しない
私は構造体オブジェクトを持っています。入力がペイロードであるメソッド。現在、という名前の mutableData を作成していpacket
ます。その可変バイトは ICMPHeader 構造体を参照しています。
可変バイトは正常に構造体にバインドされ、値も構造体で更新されていICMPHeader
ます。
問題は、構造体の値を変更しても可変データの値が変更されないことpacket
です。
また、構造体を作成した後にパケットを再作成しようとすると、クラッシュします。
swift - Swift 3 で __NSMallocBlock__ を基になる型にキャストするにはどうすればよいですか?
Swift 2.xで機能するテストを支援するトリックがありました:UIAlertController
これは Swift 3.x で失敗しますfatal error: can't unsafeBitCast between types of different sizes
。誰でもそれを理解できますか?
swift - Swift 3 で UnsafeBufferPointer をデータに変換する
UnsafeBufferPointer からデータを初期化しようとしていますが、3 行目に到達すると EXC_BAD_ACCESS がスローされます。助けていただければ幸いです。
私の最終的な目標は、データのビットを人間が読める形式に変換することです (たとえば、15 のビット パターンを "F" に変換します)。データ オブジェクトから文字列を 16 進数値として初期化することを望んでいました。私はこれについてのより良い、正しい方法を受け入れています。
swift - swift3 でのバイトの使用
'bytes' は使用できません: 代わりに withUnsafeBytes を使用してください
しかし、私はそれを使用する方法がわかりません
swift - UnsafePointer<[Float]> を変換する方法、または Float Array データを Unsafe[Mutable]Pointer に適合させる方法スウィフト3で?
HDF5 ファイルからの float 値 ( floatArray
) の配列があり、このデータを Unsafe[Mutable]Pointer ( ) を受け入れる関数の入力として使用したいと考えていますinputForFunction
。UnsafePointer は初めてなので、誰かの助けが必要です。
私が念頭に置いている1つの方法は、配列をファイルに保存してから開き、ファイル記述子を関数の入力用の変数のメモリにマップすることです。
ただし、データを格納するプロセスには時間がかかるため、最適な実装ではない可能性があります。
そのため、 UnsafePointer を使用して からfloatArray
へのポインターを渡すことを検討していますinputForFunction
が、実装方法がわかりません。参考までに、私が考えている 1 つの方法は、withUnsafePointer
メソッドを直接使用することです。
または他の方法は使用することですwithMemoryRebound
(ただし、次の方法は機能しませんでした):
私の質問は
floatArray
のデータのアドレスを に渡すにはinputForFunction
?- UnsafePointer<[Float]> から Unsafe[Mutable]Pointer に変換する必要がある場合、どうすればいいですか?
withMemoryRebound
必要な場合、この目的のためにどのように使用しますか?inputForFunction
アドレス/値をクロージャー内に割り当てることはできますか?floatArray
とのアドレスを確認したところ、floatArray[0]
異なっていました (C/C++ とは違うようです)。どのアドレスに渡す必要がありinputForFunction
ますか?