タグ

objcに関するedo_m18のブックマーク (2)

  • Objective-Cで独自クラスに[]でアクセスする | TOKOROM BLOG

    まず、Xcode4.4から使えるObjective-Cの新しい書き方については 前の記事 をご参照ください。 Xcode4.4からMacアプリ開発で使える新しいリテラル 上記記事には書いていないのですがMac向けのアプリではこの他にも、 array[1] でNSArrayの要素にアクセスできる dictionary[key] でNSDictionaryの要素にアクセスできる @YES/@NO でもNSNumberのインスタンスを作れる といった変更があります。 こちらについては残念ながらiOSアプリ開発ではまだ利用できません。 ※ これらがターゲットがMacの場合には利用できてiOSの場合には利用できないということは、 @k_katsumi さんに教えてもらいました。 でも[]でアクセスする仕組み自体はiOSでも使えます! ところで、[]でインスタンスにアクセスするコードを書いたとき、これ

    edo_m18
    edo_m18 2015/07/31
    これ知らなかった・・。
  • [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