2013年9月14日TweetPocket久しぶりのStoreKitネタです。いっても大した内容ではありませんが。4系に対応しろというような話もめっきり聞かなくなり、仕事の現場でもオープンソースのライブラリでも、いよいよARCがメインの時代がやってきたなという感じがしています。非ARCのどちらでも使用できるのですが、ドキュメントの更新が追いついていなかったりで稀に落とし穴があります。Guide」にもそういった落とし穴が一つあります。StoreKitを使ったアプリ内課金を実装する上では、PaymentQueueにオブザーバーを設定する必要があり、ドキュメント内には下記のような説明とサンプルコードが記載されています。addTransactionObserver:observer];素直にこのコードをこのまま組み込んで実行すると、一向に課金処理が進みません。オブザーバーがaddTransactionObserverではretainされないため、すぐに解放されるというわけで、少し面倒くさいですがオブザーバーのインスタンスはすぐに解放されないよう、アプリケーション側でstrongで保持しておく必要があります。地味に非ARCコードをARCに変換した時の非同期処理等で陥りがちなパターンの一つなので注意しましょう。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイトご意見、ご感想をお願いします。