タグ

2011年7月30日のブックマーク (4件)

  • Memory Management of Cocoa

    Cocoaのメモリ管理(3) 保持と解除という方法は、理屈は分かるし簡単そうに見えます。しかし、実際にやってみると意外と難しいことがわかります。そこでCocoaでは少し楽をするための仕組みを導入しています。簡単に言えば、とりあえずなんでも入れておけるごみ袋を用意して、不要になった時点でごみ袋ごと捨てちゃうという方法です。このごみ袋にあたるのが、NSAutoreleasePoolというクラスです。 Application KitにおけるNSAutoreleasePool さて、Cocoaの重要なフレームワークの一つであるApplication Kitの話から始めたいと思います。Application Kitは、主にGUIを持つアプリケーションを作成するためのフレームワークです。このフレームワークを利用して作ったアプリケーション(つまり、ぶっちゃけた話、ProjectBuilderとInter

  • Cocoaの日々: NSAutoreleasePool を使ってメモリ解放

    iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど autorelease autorelease を使ってオブジェクトを生成した場合、そのオブジェクトはランループ(イベント処理の周期)終了時に解放される。 (例) NSMutableArray* array = [NSMutableArray array]; 通常はこの仕組で問題ないが、バッチ的な処理を1箇所で行なう場合に autoreleaeを使うと解放されない大量の autoreleae属性のオブジェクトが残ってしまう場合がある。 (例) for (i=0; i < 100; i++) { NSMutableArray* array = [NSMutableArray array]; : 時間のかかる処理 : }これは、処理が終わるまでランループが終了しないので autorelea

    Cocoaの日々: NSAutoreleasePool を使ってメモリ解放
  • こたつつきみかん : NSAutoreleasePool

    Cocoaには、他の開発環境では見かけない、いくつかのユニークな仕組みが用意されています。例えば、Key Value Coding(キー値コーディング),NSNotificationCenterなどがあげられますが、今回は既にたびたび出てきているNSAutoreleasePoolについて紹介します。 NSAutoreleasePoolは、名前からわかるように自動解放プールを作成するクラスです。自動解放プールとは至って単純な仕組みで、自動解放プールに登録されたオブジェクトは、自動解放プールを解放したときと同時に、登録されたオブジェクトも解放される仕組みです。正確には、登録されたオブジェクトにreleaseメッセージが送られます。 //プール作成 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //たくさんのオブジェクトを

  • Learn you some Erlang for great good! — Learn you some Erlang for great good! v0.8 documentation

    翻訳について¶ このドキュメントは、Learn you some Erlang for great good! (http://learnyousomeerlang.com/) を著者の許可の下、日語訳したものです。ドキュメントのランセンスはCreative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported、ソースコードのライセンスは拡張BSDです。