タグ

開発とobjectivecに関するedo_m18のブックマーク (1)

  • [NSObject load] と [NSObject initialize] の違い

    クラスがObjective-Cのランタイムにロードされ利用可能になったタイミングで、そのクラス全体の初期化を行いたいということはよくあると思います。Objective-CではNSObjectクラスの以下のメソッドを用いてクラス全体の初期化を行うことができます。 + load + initializeこの2つですが、結構挙動が異なります。詳細については以下のとおり。 http://cocoawithlove.com/2008/03/cocoa-application-startup.htmlloadメソッドはクラスがロードされて利用可能になったら即座に呼び出される。このとき、自分以外の他のクラスはまだロードされていない可能性があるので、自分以外のクラスを利用するような初期化はできない。main関数の内部のNSAutoReleasePoolが用意されるよりも先に呼び出されるので、autorel

  • 1