Swift 標準ライブラリ   >   UnsafePointer   >   withMemoryRebound(to:capacity:_:)


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


withMemoryRebound(to:capacity:_:)


本体のクロージャを実行している間に隣接する T 値の count を保持する容量を持つ T 型に self のメモリを再結合します。





宣言


func withMemoryRebound<T, Result>(to: T.Type, capacity count: Int, _ body: UnsafePointer<T>) throws -> Result) rethrows -> Result


議論


クロージャを実行した後、メモリを Pointee に戻して再結合します。


前提条件:'T' 型は 'Pointee' 型とレイアウト互換です。


前提条件:self..<self + count * MemoryLayout<T>.stride のメモリは Pointee に結合しています。


UnsafePointer<T>.pointee へのアクセスは、メモリが T 型に"結合" されている必要があります。メモリ位置は、一度に 1 つの型にしか結合できないため、メモリを最初に再結合せずに無関係の型と同じメモリにアクセスすることは定義されていません。メモリは、実行中に Pointee に結合されなくなるため、body (本体の) クロージャ内では self にアクセスすることはできません。メモリは一時的に T に結合されているだけなので、クロージャの UnsafePointer<T> 引数はクロージャをエスケープしてはいけません。


このメモリを永続的に別の型に結合するには、まずメモリへの生のポインタを取得し、次に bindMemory API を呼び出して下さい。


UnsafeRawPointer(typedPointer).bindMemory(to:capacity:)





目次
Xcode の新機能

  • 言語:Swift
  • 宣言
  • 議論












  • トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)