カテゴリー別アーカイブ: デバッグ

iOS 8 で viewDidAppear が呼ばれなくなった

iOS アプリの開発をしていて、不思議な現象が発生しました。

iOS 7 以前のバージョンでは viewDidAppear が呼ばれるのに、同じコードで iOS 8 だと呼ばれないのです。

かなりハマりましたが、原因はコードの記述ミスでした。

スーパークラスで以下のような記述をしてしまっていました。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewDidAppear:animated] ;
    // :
    // :
    // :
}

そう、viewWillAppear の中で super の viewDidAppear を呼んでしまっていました。

iOS 7 以前ではこんなことをしてもタマタマうまく動いていたと思われます。

iOS 8 になって、内部の処理がすこし変わって顕在化したものと思われます。

こんなミスはレアケースかと思いますが、一応共有ということで記載しました。

 

TCReporting という謎のメッセージでiOSアプリが落ちてしまう

 

iOS のシミュレータで昨日までちゃんと動いていたのに、突然動かなくなりました。

そのあたりのコードはいじっていないはずなのに

TCReporting: resolve from http://pancake.apple.com/bags/hls?version=4.12

という謎のメッセージがログに出力されてアプリが落ちてしまう。

http://pancake.apple.com/bags/hls?version=4.12 にアクセスしても謎の情報が表示されるだけで何もわからない。

調べたところどうやら、動画再生とブレイクポイントが関係しているようだった。

ブレイクポイントをすべて解除して実行したら正しく再生されました。

私の場合、All Exceptions にブレイクポイントを張っていたのがまずかったようです。