cocos2d-iphone 2.0でのARC対応(2013-02-17追記)

※はじめに書いておくと、この記事は以下の記事に書いてあることを紹介しているだけです。最初から以下の記事を読んでもらえばこの記事は読む必要ないです。大して英語力は必要ないです。
http://www.learn-cocos2d.com/2012/04/enable-arc-cocos2d-project-video-tutorial/

結論から書きます。
cocos2dで自分が書くソースでARC使いたいなら、以下の2つの方法が簡単です。
①上記チュートリアルを真似して、cocos2dライブラリと自分のソースを分離し、自分のソースだけARC化
②learn-cocos2d.comで公開されているhttps://github.com/LearnCocos2D/cocos2d-iphone-arc-templates をダウンロードしてプロジェクトの雛形として使う。


cocos2d-iphone 2.0は、ARCと共存可能(compatible)ですが、cocos2dのライブラリ自体はARCに対応していません。

すなわち、自分が書くソースはARC使えるけど、cocos2dのライブラリはARCに基づいて書かれてないってことです。
最新のXCodeにはソースをARC対応させる機能があります。
[Edit]→[Refactor]→[Convert to Objective-C ARC...] です。

cocos2dライブラリはARC化してないので、この機能をプロジェクトに使うと大量の警告が出ます。
自力で対応させるのは現実的ではありません。
というか、自力で対応させたら是非cocos2dのgithubにPullRequest送ってあげてください。


cocos2d 2.0でXcodeにインストールしたテンプレートは、ライブラリ部分以外(ライブラリを使う側、アプリ部分、main.mとか)もARCに対応していません。
なので、main.mでautorelease poolが指定されており、CCArrayやNSMutableArrayといった配列を定義して要素を格納しても、次のフレームには格納した要素が解放されているということが生じます。

そこは、autoreleaseを意識したソース書けば解決ですが、せっかくARCという便利な機能があるのだから使っちゃいましょう!

という訳で、既にcocos2dのテンプレートで作成済みのプロジェクトをARC化したいなら①をやってください。
慣れればすぐできます。

最初からARC対応したプロジェクトを作りたいなら②を使うのが簡単でしょう。
②は、①が既に行われた雛形、というだけのものだと思います。


ちなみに、最新のcocos2d本(和訳はまだ出版されてません)のソースコードのzipファイルには最初から②が入ってます。
http://www.learn-cocos2d.com/store/book-learn-cocos2d/
学習の出発点としてはこの本のソースはとてもいいと思います。
記事内の「Cocos2D Source Code (ARC) (Cocos2D v2.0; includes 12 Cocos2D ARC templates)」からダウンロードできます。

(2013-02-17追記)
以上の方法をとった場合、シミュレータだと実行出来ますが、iOS Deviceだとリンクエラーが起こります。
ld: library not found for -lcocos2d-library
というメッセージです。
以下のページのコメントのやりとりに解決策がありました。
http://www.learn-cocos2d.com/2012/04/enabling-arc-cocos2d-project-howto-stepbystep-tutorialguide/
自分のアプリとcocos2dライブラリの両方のBuild Settingで、Build Active Architecture OnlyをNoにしてください。
cocos2dライブラリを作ったときはデフォルトでYesになっています。