iOS5では動くけど、iOS4では落ちる問題

ビルドは通るし、iOS5では問題無く動くんだけど
iOS4系で動作させたらなぜか落ちる。
バージョン依存のプロパティも使ってないし、なぜ? というときにこの辺チェック。


余分なreleaseをしていないか

たとえばdeallocなどでretainCountを越えてreleaseをかけた場合、
iOS5系ならばなんか上手いことやって落ちずに実行してくれますが
iOS4系は、落ちます。 名前が似てるからって余分にreleaseしてませんか?



アクセス方法が間違っている

これは私がMPMediaItemPropertyを使ったプログラムを書いていた辺りの
結構限定的な問題ではあるんですが、以下のようなコードで落ちることが。

MPMediaItem* item = 
    [[MPMusicPlayerController iPodMusicPlayer] nowPlayingItem];
NSString* title = [item valueForKey:MPMediaItemPropertyTitle];

実際には落ちたのは他のプロパティアクセスしたときだったかも、なんですが
なんでかというと、MPMediaItemへのアクセス方法間違ってますよね。
アクセスするときは「valueForProperty」です。

上手く行くプロパティもあるので、発覚が遅れました……。



取り合えずはそんな感じで、
メモリにアクセスしている辺りを調べてみると調査が捗るかも知れません。
iOS4系とiOS5系ではメモリ管理周りも変わってるのですね。