2012年06月09日

[iOS] メモリ管理(特にARC)について

iPhone/iPadアプリではXcodeを使ってObjective-Cでプログラムを書くのですが、
アップルの審査をクリアするためにはメモリ管理が重要になっていると聞いたことがあります。

そこで、下記の参考サイトを読んだのですが、色々と決まり事があって大変だなぁと思いつつ
テストプログラムを書いていたら、「あれ?なんかビルドが通らない」という事態に。

IOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール
http://www.zero4racer.com/blog/88

調べてみると、iOS5(Xcode4.2) から「ARC(Automatic Reference Counting)」という
メモリ管理を自動的に行ってくれる機能が出来たようです。
開発者は、retainやrelease、autoreleaseを書く必要がなくなるという素敵な機能です。
逆に、書いてしまったからこそビルドエラーになっていたのでした。

IOS 5 公開記念! OBJECTIVE-Cのメモリ管理の革命、 ARC 超入門(サンプルはGITHUBに公開)
http://www.zero4racer.com/blog/261

これは嬉しい!ということで早速ARCを利用しました。
ちなみに、ARC未対応の旧バージョンのプログラムをビルドしたいときは、

Build Setting > Apple LLVM Compiler 3.0 - Language > Objective-C Automatic Reference Counting > NO

とすればよかったです↓

Automatic Reference Counting(ARC)とは?
http://libro.tuyano.com/index3?id=546005&page=5

ただ、本プログラムはARC対応でも、iPhone/iPadに貼る広告用SDKがARC未対応というのが今回ハマったパターンでした。
ARC対応版とARC未対応版が1つのプロジェクトに混同している場合どうするか。
その答えは、「ファイル毎にビルド設定を変える」というものでした↓

ARCをファイル単位でOn/Offする方法
http://dorapro.co.jp/iphonedev/?p=344

これで無事アプリに広告が貼れました。
めでたしめでたし。
posted by be-style at 00:39| Comment(0) | iOS
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]