2008-09-15 第4回 詳解Objective-C 2.0 読書会 event CHAPTER06「ガーベジコレクション」 質問:10.5以降はリファレンスカウンタは使わない? 10.5の内部はGCを使っているが、外のライブラリはまだGDに対応していないことが多いからリファレンスカウンタを使わざるを得ない GCはテキスト入力のハンドリングがまだあやしい IMの中の処理がメモリーリークっぽくバラバラ残る 今までMacで開発してきた人はリファレンスカウンタに慣れているので変える必要性を感じていない RubyCocoaはOS XのGCにはまだ対応していない deallocしかしていないときはfinalizeなしのGCでOK 「OS Xが出た頃はみんなGCがないのがよいと言っていた。自分は早くGC出して欲しかった」(新居さん) Core Dataはリテインが複雑でGCでもパフォーマンスが出にくい 「+(id)defaultCollector」でプラグインの中からガーベジコレクタがいるかどうかを調べる ランタイムのAPIはCの関数はあまり使わない 【超重要】GUIに関する注意 XIB/NIBファイルでルート集合から参照できないオブジェクトを作ってしまうとGCに回収されてしまう 動的にGUI部品をつなごうとしているときにはまる。つなぐ前にGCされてしまう可能性がある ルートから参照されているのは「File's Owner」だけなのでここにIBOutletを追加してつなぐ 「NIBファイルをロードするときにやってほしい」 CHAPTER07「NBObjectクラスとランタイムシステム」 Core FoundationはDarwinの一部としてソースコードが公開されている その機能をオブジェクト指向で使えるのがCocoa 「NSLog(@"%@",obj);」の「%@」で出てくるのがdescription