文書   >   Swift   >   Swift 標準ライブラリ  >     手動でメモリ管理   >   UnsafeBufferPointer   >   withMemoryRebound(to:_:)


汎用インスタンスメソッド


withMemoryRebound(to:_:)


このバッファが参照するメモリを与えられた型に一時的に結合しながら、与えられたクロージャを実行します。





宣言


func withMemoryRebound<T, Result>(to type: T.Type, _ body: (UnsafeBufferPointer<T>) throws -> Result)
rethrows -> Result


パラメータ


typeこのバッファが参照するメモリを一時的に結合する型。型 T は同じサイズで、ポインタの Element 型とレイアウトの互換性がなければなりません。
body型付きのバッファをこのバッファと同じメモリに移動し、型 T にのみ結合するクロージャ。バッファの引数には、元の <br/> バッファの count と同じ数の T の完全なインスタンスが含まれます。クロージャのバッファ引数は、クロージャの実行中のみ有効です。body に戻り値がある場合、その値は withMemoryRebound(to:_:) メソッドの戻り値としても使用されます。


戻り値


もしあれば、body クロージャパラメータの戻り値。


議論


ある型に結合されたメモリのバッファがあり、そのメモリに別の型のバッファとしてアクセスする必要がある場合に、このメソッドを使用します。型 T としてメモリにアクセスするには、メモリをその型に結合する必要があります。メモリ位置は一度に 1 つの型にのみ結合できるため、最初にメモリを再結合せずに無関係な型と同じメモリにアクセスすることは定義されていません。


このバッファが参照するメモリ領域全体を初期化しなければなりません。


body クロージャの実行中に、このバッファのメモリはその Element 型に結合されなくなるため、body 内から元のバッファを使用してメモリにアクセスしないでください。代わりに、body クロージャのバッファ引数を使用して、メモリ内の値に T 型のインスタンスとしてアクセスします。


body の実行後、このメソッドはメモリを元の Element 型に再結合します。


注意

このメソッドは、バッファのメモリを、現在結合されている Element 型と同じサイズとストライドを持つ型に再結合するためにのみ使用して下さい。メモリの領域を異なるサイズの型に結合するには、バッファを生のバッファに変換し、bindMemory(to:) メソッドを使用して下さい。


















トップへ












トップへ












トップへ












トップへ












トップへ
目次
Xcode の新機能

  • 言語:Swift
  • SDK
  • Xcode 9.3+

  • フレームワーク
  • Swift 標準ライブラリ
  • 宣言
  • パラメータ
  • 戻り値
  • 議論












  • トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ