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

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

ios - UnsafeMutablePointer 配列の操作

私は Brad Larson のすばらしいGPUImageフレームワークを使用しようとしていGPUImageHarrisCornerDetectionFilterます。

コーナーは - の配列として返され、GLFloatそれUnsafeMutablePointerをの配列に変換したいと思いますCGPoint

メモリにスペースを割り当ててみました

しかし、データは意味をなさないようです-ゼロまたは1E-32

Swiftで<UnsafeMutablePointer>の配列の要素をループする方法の完璧な答えのように見えるものを見つけて試しました

しかし、コンパイラはUnsafeBufferPointer- が気に入らなかったので、 に変更しましたUnsafeMutablePointerが、引数リストが気に入らなかったのです。

これは素晴らしくシンプルであり、他の人がしなければならなかったに違いないことのように思えます-では、解決策は何ですか?

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

ios - Swift 2.0 で CMSampleBuffer のコピーを作成する

これは以前にも質問されましたが、質問されてから Swift で何かが変わったに違いありません。CMSampleBufferから返されたオブジェクトAVCaptureSessionを後で処理するために保存しようとしています。いくつかの実験の後、その参照AVCaptureSessionを再利用しているに違いないことを発見しました。CMSampleBuffer15 を超えて保持しようとすると、セッションがハングします。そこで、サンプル バッファーのコピーを作成しようと考えました。しかし、私はそれを機能させることができないようです。ここに私が書いたものがあります:

と書かれているため、これはコンパイルされませんVariable 'bufferCopy' used before being initialized。私は多くの例を見てきましたが、それらはコンパイルされて動作しないか、コンパイルされません。

ここで私が間違っていることを誰かが見ていますか?

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

go - インターフェースのマップまたはスライス上の範囲のループ変数へのポインター{}

go-hdf5を使用していますが、マップからループで属性を書き込もうとすると問題が発生します。

属性は正しく作成されますが (正しい名前とデータ型)、書き込まれた値はガベージです。

ループ外の同じコードは正常に機能します。v := vイディオムとコードをクロージャーでラップしてキャプチャすることの両方を試みましたvが、違いはありません。

コードの要点は次のとおりです (わかりやすくするために意図的にエラー チェックを省略しています)。

このWriteメソッドは、リフレクションを使用して値へのポインターを取得し、それを C ライブラリに転送します。コードの関連部分は次のとおりです。

マップを のスライスで置き換えるとinterface{}、まったく同じ問題が発生するため、これはループ変数のバインドに関係しているというのが私の推測ですが、それでもv := v役に立たないのでわかりません。

Go、HDF5 (C ライブラリ)、go-hdf5 についてはよく知っていますが、ここで行き詰っています。何か案が?

ところで、go1.5.1 darwin/amd64 を使用しています。

0 投票する
0 に答える
118 参照

swift - 不変構造へのポインタを取得する

私はいくつかの C ライブラリのラッパーを書いています。UnsafePointer を不変の構造体にすることは可能ですか? 可変構造体の場合は問題ありません。

しかし、これらのソリューションはどちらも理想的ではありません。

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

swift - fromCString を使用して DS から読み取り中に Optional 値をアンラップ中に予期せず nil が見つかりました

dbtable から読み取りを行っているときに、テーブルの特定の位置でエラーが発生します。同じテーブルから既に読み取ることができたので、私のSQLは問題ありませんが、特定の行でエラーが発生し、このエラーの処理方法を知りたいです。私は自分の db-issue を解決するための解決策を探しているわけではありません。エラーの処理を探しているだけなので、クラッシュしません。

私は次のコードを持っています:

エラーが発生します:

「致命的なエラー: オプション値のラップ解除中に予期せず nil が見つかりました」

でマークされた行で<<<<<< ERROR

アンセーフ ポインターの値はnil次のとおりです。

アプリがクラッシュしないように、このエラーを処理するにはどうすればよいですか?

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

c - NSData を UnsafeMutablePointer にコピーします

こんにちは、スタックオーバーフラワーです。私はセキュア トランスポートのラッパーを実装していますが、C -> Swift 構文のいくつかに行き詰まっています。

コンパイルエラーの場所をマークしました。私はそれを間違いのせいにしません、私はここでちょっと推測していました:P. NSData を data:UnsafeMutablePointer にコピーしようとしています。それ、どうやったら出来るの?

コンパイル エラー:

/Users/*/SecureTransportWrapper.swift:108:9: 静的メンバー 'alloc' はタイプ 'UnsafeMutablePointer' (別名 'UnsafeMutablePointer<()>') のインスタンスでは使用できません

ありがとうございます!

================

更新: sslReadCallback が行うべきことの API ドキュメントは次のとおりです。

connection: 接続参照。

data: 戻ったときに、コールバックは、接続から読み取ったデータでこの場所のメモリを上書きする必要があります。

dataLength: 入力では、データの長さをバイト単位で表す整数へのポインター。戻り時に、コールバックは実際に転送されたバイト数でその整数を上書きする必要があります。

ここから抜粋

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

c - Swift クラスを object-c の __bridge のような UnsafePointer に変換するにはどうすればよいですか

SecureTransport C ライブラリへの迅速なブリッジを実装しようとしています。私は、sslReadCallback/sslWriteCallback 実装で接続から何かを読み取る方法を知っている限り、接続として何でも渡すことができると「考えています」。これは私が取り組んでいる仮定です。これは、SSLConnectionRef の定義を表示した場合に当てはまるようです。

したがって、クラスを UnsafePointer に変更する必要があります。残念ながら、コンパイラは私の試みを気に入りません。誰でもヒントを教えてもらえますか?

GCDAsyncSocket では、これを行います。

..開封します。これに相当する迅速なものは何ですか?

どうもありがとう!

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

swift - UnsafeMutablePointer を指すそれ自体に

C では、ポインターに割り当てられたメモリ位置を指すポインターを持つことは有効です。

このポインターをcontextin observeValueForKeyPath:ofObject:change:context:.

Swift でそのポインターに割り当てられたメモリ空間へのポインターを指すか、ポインターに手動でメモリを割り当てることは可能ですか? 初期化中にポインタをそれ自体のメモリ値に向けようとすると、(予想どおり) エラーが発生します。

CMutableVoidPointer言語にはもう存在せず、ポインター ( UnsafeMutablePointer<Void>()) の初期化は推奨されておらず、ポインターを に設定するだけnilです。

たぶん次のようなもの: