文書   >   Swift   >   Swift 標準ライブラリ  >     手動でメモリ管理
Manual Memory Management (手動でメモリ管理)
メモリを手動で割り当てて管理します。
トピックス
最初のステップ
- ポインタパラメータで関数を呼び出す
ポインタをパラメータとして取る関数を呼び出すときは、暗黙のポインタキャストまたはブリッジングを使用してください。
型付きポインタ
特定の型のインスタンスとしてメモリにアクセスするには、型付きポインタとバッファを使用します。
特定の型のデータにアクセスするためのポインタ。
特定の型のデータにアクセスして操作するためのポインタ。
メモリに連続して格納された要素のバッファへの所有されていないコレクションインタフェース。
struct UnsafeMutableBufferPointer
メモリに連続して格納された可変要素のバッファへの所有されていないコレクションインタフェース。
生のポインタ
生のポインタとバッファを使用して、生のバイトとして書き込み、および保存するためのメモリにアクセスします。
型のないデータにアクセスするための生のポインタ。
struct UnsafeMutableRawPointer
型のないデータにアクセスして操作するための生のポインタ。
struct UnsafeRawBufferPointer
メモリ領域内のバイトへの所有していないコレクションインターフェイス。
struct UnsafeMutableRawBufferPointer
メモリ領域のバイトへの変更可能な所有していないコレクションインターフェイス。
メモリアクセス
func withUnsafePointer<T, Result>(to: T, (UnsafePointer<T>) -> Result) -> Result
与えられた引数へのポインタを使用して、与えられたクロージャを呼び出します。
func withUnsafePointer<T, Result>(to: inout T, (UnsafePointer<T>) -> Result) -> Result
与えられた引数へのポインタを使用して、与えられたクロージャを呼び出します。
与えられた引数への可変ポインタを使用して、与えられたクロージャを呼び出します。
func withUnsafeBytes<T, Result>(of: T, (UnsafeRawBufferPointer) -> Result) -> Result
与えられた引数の生のバイトをカバーするバッファポインタを使用して、与えられたクロージャを呼び出します。
func withUnsafeBytes<T, Result>(of: inout T, (UnsafeRawBufferPointer) -> Result) -> Result
与えられた引数の生のバイトをカバーするバッファポインタを使用して、与えられたクロージャを呼び出します。
与えられた引数の生のバイトをカバーする可変バッファポインタを使用して、与えられたクロージャを呼び出します。
func swap<T>(inout T, inout T)
2 つの引数の値を交換します。
メモリレイアウト
型のメモリレイアウト。そのサイズ、ストライド、及びアライメントを記述します。
参照カウント
管理されていないオブジェクト参照を伝播するための型。
func withExtendedLifetime<T, Result>(T, (T) -> Result) -> Result
クロージャが評価される一方で、クロージャーが戻る前に与えられたインスタンスが破棄されないようにします。
func withExtendedLifetime<T, Result>(T, () -> Result) -> Result
クロージャが評価される一方で、クロージャーが戻る前に与えられたインスタンスが破棄されないようにします。
以下も見よ
プログラミングタスク
- Input and Output
- Debugging and Reflection
- Key-Path Expressions
- Type Casting and Existential Types
- C Interoperability
- Operator Declarations
コンソールに値を出力し、テキストストリームの読み取りと書き出しを行い、コマンドライン引数を使用します。
実行時チェックでコードを強化し、値の実行時表現を調べます。
キーパス式を使用して、プロパティに動的にアクセスします。
型間のキャストを実行したり、任意の型の値を表現します。
インポートされた C 型を使用したり、C 可変個変数関数を呼び出します。
prefix, postfix, および infix 演算子を使用します。
トップへ
トップへ
トップへ
トップへ
トップへ