NSDiscardableContent
継承:なし
従属:なし
フレームワーク:OS X 10.6 以降の Foundation。関連項目..
概要
クラスのオブジェクトは、それによってアプリケーションに小さいメモリの足跡を与え、使用されていないときに廃棄できるサブコンポーネントを持っているときに、このプロトコルを実装します。
NSDiscardableContent オブジェクトのライフサイクルは、"counter" 変数に依存しています。 NSDiscardableContent オブジェクトは、それが現在、いくつかの他のオブジェクトによって使用されているか否かを追跡するメモリの消去可能なブロックです。このメモリが読み出されるか、またはまだ必要とされる場合、その counter 変数は、1 以上となります。それが使用されておらず、廃棄することができる場合、counter 変数は 0 に等しくなります。
counter が 0 に等しい場合、メモリのブロックは、メモリがその時点で密である場合に廃棄できます。コンテンツを破棄するためには、counter 変数が 0 に等しい場合、関連するメモリを解放できる、オブジェクト上で discardContentIfPossible を呼び出します。
デフォルトでは、NSDiscardableContent オブジェクトは、それらがすぐにメモリ管理システムによって廃棄されないことを確認するために、1 に等しい counter で初期化されます。この時点から、counter 変数の状態を追跡する必要があります。beginContentAccess メソッドを呼び出すと、オブジェクトが破棄されないことを保証するように、1 だけ counter 変数を増分します。もはやオブジェクトを必要としない場合、endContentAccess を呼び出して、その counter を減分します。
Foundation フレームワークは、このプロトコルのデフォルトの実装を提供する NSPurgeableData クラスを含んでいます。
タスク
コンテンツへのアクセス
– beginContentAccess 必須
廃棄するコンテンツがまだ利用可能であり、正常にアクセスされたかどうかを示すブール値を返します。
宣言
<< SWIFT >>
func beginContentAccess() -> Bool << OBJECTIVE-C >> - (BOOL)beginContentAccess
戻り値
廃棄するコンテンツがまだ利用可能であり、現在正常にアクセスされる場合は YES。それ以外の場合は、NO。
議論
オブジェクトのメモリが必要な時、または使用しようとしている場合は、このメソッドを呼び出します。このメソッドは、破棄されることから、オブジェクトのメモリを保護する事が可能で、counter 変数を増分します。実装クラスは、このメソッドはそれらが破棄され、内容を再作成しようとする事を決定し、再作成が成功した時は YES を返します。NSDiscardableContent オブジェクトが使用されていて beginContentAccess メソッドがそれらに呼び出されていない時に、このプロトコルの実装は、例外を発生させます。
利用可能
OS X 10.6 以降で利用できます。
以下も見よ
– endContentAccess– endContentAccess 必須
廃棄可能なコンテンツがもはやアクセスされていない場合に呼び出されます。
宣言
<< SWIFT >>
func endContentAccess() << OBJECTIVE-C >> - (void)endContentAccess
議論
このメソッドは、オブジェクトの破棄可能なコンテンツが必要に応じて throw する事を許し、0 に counter 変数の値を通常戻し、オブジェクトの counter 変数を減分します。
利用可能
OS X 10.6 以降で利用できます。
以下も見よ
– beginContentAccessコンテンツの破棄
– discardContentIfPossible 必須
アクセスされた counter の値が 0 の時、受信者のコンテンツを廃棄するために呼び出されます。
宣言
<< SWIFT >>
func discardContentIfPossible() << OBJECTIVE-C >> - (void)discardContentIfPossible
議論
アクセスされた counter の値が 0 の場合、このメソッドは、オブジェクトのコンテンツを破棄するのみです。それ以外の場合は、何もしません。
利用可能
OS X 10.6 以降で利用できます。
以下も見よ
– isContentDiscarded– isContentDiscarded 必須
コンテンツが破棄されたかどうかを示すブール値を返します。
宣言
<< SWIFT >>
func isContentDiscarded() -> Bool << OBJECTIVE-C >> - (BOOL)isContentDiscarded
戻り値
コンテンツが破棄された場合には YES。それ以外の場合は、NO。
利用可能
OS X 10.6 以降で利用できます。
以下も見よ
– discardContentIfPossible次:文書改定履歴