NSAutoreleasePoolの例とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > NSAutoreleasePoolの例の意味・解説 

NSAutoreleasePoolの例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/02 08:13 UTC 版)

Objective-C」の記事における「NSAutoreleasePoolの例」の解説

int count = 0;// NSAutoreleasePoolのインスタンス化NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];id objFoo = [[Foo alloc] init];id objBar = [[Bar alloc] init];id objBaz = [[Baz alloc] init];// Autorelease poolに登録[objFoo autorelease];[objBar autorelease];[objBaz autorelease];// オブジェクト参照する変数id qux = objFoo;id fooBar = objBar;[qux retain]; // FooのretainCountは2// Autorelease pool解放[pool release];count = [qux retainCount]; // Fooをretain後オーナーだったobjFooが解放されたので1count = [fooBar retainCount]; // Barをretainしていないのでエラーcount = [objBaz retainCount]; // ほかの参照がなかったので解放済みエラーcount = [objBar retainCount]; // fooBarがretainしていなかったのでエラー オーナー(所有者)とは、あるオブジェクトインスタンスをretainまたはautoreleaseしたオブジェクトないしは変数のことで、上の例で、poolreleaseする直前ではobjで始まる変数とquxが該当するOPENSTEPライブラリは、イベントサイクル単位でAutorelease pool呼ばれる暗黙参照元を持っており、オブジェクトをここに登録することでイベント終了時には自動解放されるオブジェクト実現している。Mac移植後もNSApplicationクラス実装されているが、オブジェクトの登録も不要となっている。前述のNSAutoreleasePoolは、NSApplicationクラス不要なときでも自動解放ができるように用意されものといえる。 GNU版ランタイム及び、Mac向けのAppleランタイム(Objective-C 2.0以降)ではガベージコレクション利用可能だが、iOSに於てはリソース効率上使できないAppleはさらに第三方式としてARC (Automatic Reference Counting) 方式開発した。またガベージコレクションOS X 10.11最後に廃止されており、それ以降Apple系ではARC主流となっている。

※この「NSAutoreleasePoolの例」の解説は、「Objective-C」の解説の一部です。
「NSAutoreleasePoolの例」を含む「Objective-C」の記事については、「Objective-C」の概要を参照ください。

ウィキペディア小見出し辞書の「NSAutoreleasePoolの例」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「NSAutoreleasePoolの例」の関連用語

NSAutoreleasePoolの例のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



NSAutoreleasePoolの例のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのObjective-C (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS