問題タブ [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 - UnsafeMutablePointer 配列の操作
私は Brad Larson のすばらしいGPUImage
フレームワークを使用しようとしていGPUImageHarrisCornerDetectionFilter
ます。
コーナーは - の配列として返され、GLFloat
それUnsafeMutablePointer
をの配列に変換したいと思いますCGPoint
メモリにスペースを割り当ててみました
しかし、データは意味をなさないようです-ゼロまたは1E-32
Swiftで<UnsafeMutablePointer>の配列の要素をループする方法の完璧な答えのように見えるものを見つけて試しました
しかし、コンパイラはUnsafeBufferPointer
- が気に入らなかったので、 に変更しましたUnsafeMutablePointer
が、引数リストが気に入らなかったのです。
これは素晴らしくシンプルであり、他の人がしなければならなかったに違いないことのように思えます-では、解決策は何ですか?
ios - Swift 2.0 で CMSampleBuffer のコピーを作成する
これは以前にも質問されましたが、質問されてから Swift で何かが変わったに違いありません。CMSampleBuffer
から返されたオブジェクトAVCaptureSession
を後で処理するために保存しようとしています。いくつかの実験の後、その参照AVCaptureSession
を再利用しているに違いないことを発見しました。CMSampleBuffer
15 を超えて保持しようとすると、セッションがハングします。そこで、サンプル バッファーのコピーを作成しようと考えました。しかし、私はそれを機能させることができないようです。ここに私が書いたものがあります:
と書かれているため、これはコンパイルされませんVariable 'bufferCopy' used before being initialized
。私は多くの例を見てきましたが、それらはコンパイルされて動作しないか、コンパイルされません。
ここで私が間違っていることを誰かが見ていますか?
go - インターフェースのマップまたはスライス上の範囲のループ変数へのポインター{}
go-hdf5を使用していますが、マップからループで属性を書き込もうとすると問題が発生します。
属性は正しく作成されますが (正しい名前とデータ型)、書き込まれた値はガベージです。
ループ外の同じコードは正常に機能します。v := v
イディオムとコードをクロージャーでラップしてキャプチャすることの両方を試みましたv
が、違いはありません。
コードの要点は次のとおりです (わかりやすくするために意図的にエラー チェックを省略しています)。
このWrite
メソッドは、リフレクションを使用して値へのポインターを取得し、それを C ライブラリに転送します。コードの関連部分は次のとおりです。
マップを のスライスで置き換えるとinterface{}
、まったく同じ問題が発生するため、これはループ変数のバインドに関係しているというのが私の推測ですが、それでもv := v
役に立たないのでわかりません。
Go、HDF5 (C ライブラリ)、go-hdf5 についてはよく知っていますが、ここで行き詰っています。何か案が?
ところで、go1.5.1 darwin/amd64 を使用しています。
swift - 不変構造へのポインタを取得する
私はいくつかの C ライブラリのラッパーを書いています。UnsafePointer を不変の構造体にすることは可能ですか? 可変構造体の場合は問題ありません。
しかし、これらのソリューションはどちらも理想的ではありません。
swift - fromCString を使用して DS から読み取り中に Optional 値をアンラップ中に予期せず nil が見つかりました
dbtable から読み取りを行っているときに、テーブルの特定の位置でエラーが発生します。同じテーブルから既に読み取ることができたので、私のSQLは問題ありませんが、特定の行でエラーが発生し、このエラーの処理方法を知りたいです。私は自分の db-issue を解決するための解決策を探しているわけではありません。エラーの処理を探しているだけなので、クラッシュしません。
私は次のコードを持っています:
エラーが発生します:
「致命的なエラー: オプション値のラップ解除中に予期せず nil が見つかりました」
でマークされた行で<<<<<< ERROR
。
アンセーフ ポインターの値はnil
次のとおりです。
アプリがクラッシュしないように、このエラーを処理するにはどうすればよいですか?
c - NSData を UnsafeMutablePointer にコピーします
こんにちは、スタックオーバーフラワーです。私はセキュア トランスポートのラッパーを実装していますが、C -> Swift 構文のいくつかに行き詰まっています。
コンパイルエラーの場所をマークしました。私はそれを間違いのせいにしません、私はここでちょっと推測していました:P. NSData を data:UnsafeMutablePointer にコピーしようとしています。それ、どうやったら出来るの?
コンパイル エラー:
/Users/*/SecureTransportWrapper.swift:108:9: 静的メンバー 'alloc' はタイプ 'UnsafeMutablePointer' (別名 'UnsafeMutablePointer<()>') のインスタンスでは使用できません
ありがとうございます!
================
更新: sslReadCallback が行うべきことの API ドキュメントは次のとおりです。
connection: 接続参照。
data: 戻ったときに、コールバックは、接続から読み取ったデータでこの場所のメモリを上書きする必要があります。
dataLength: 入力では、データの長さをバイト単位で表す整数へのポインター。戻り時に、コールバックは実際に転送されたバイト数でその整数を上書きする必要があります。
ここから抜粋
c - Swift クラスを object-c の __bridge のような UnsafePointer に変換するにはどうすればよいですか
SecureTransport C ライブラリへの迅速なブリッジを実装しようとしています。私は、sslReadCallback/sslWriteCallback 実装で接続から何かを読み取る方法を知っている限り、接続として何でも渡すことができると「考えています」。これは私が取り組んでいる仮定です。これは、SSLConnectionRef の定義を表示した場合に当てはまるようです。
したがって、クラスを UnsafePointer に変更する必要があります。残念ながら、コンパイラは私の試みを気に入りません。誰でもヒントを教えてもらえますか?
GCDAsyncSocket では、これを行います。
と
..開封します。これに相当する迅速なものは何ですか?
どうもありがとう!
swift - UnsafeMutablePointer を指すそれ自体に
C では、ポインターに割り当てられたメモリ位置を指すポインターを持つことは有効です。
このポインターをcontext
in observeValueForKeyPath:ofObject:change:context:
.
Swift でそのポインターに割り当てられたメモリ空間へのポインターを指すか、ポインターに手動でメモリを割り当てることは可能ですか? 初期化中にポインタをそれ自体のメモリ値に向けようとすると、(予想どおり) エラーが発生します。
CMutableVoidPointer
言語にはもう存在せず、ポインター ( UnsafeMutablePointer<Void>()
) の初期化は推奨されておらず、ポインターを に設定するだけnil
です。
たぶん次のようなもの: