WebViewのDelegateにご用心・・・ | TokoTokoSoftware

TokoTokoSoftware

iPhone / iPadアプリを作っている団体「トコトコ」です
大学生二人でMacBookつかって頑張ってます!!

最近なんか挙動が変だな~っておもってたら
なんとWebViewのDelegateの仕様が予想外で対応していませんでした・・・・

delegateには

– webView:shouldStartLoadWithRequest:navigationType:
– webViewDidStartLoad:
– webViewDidFinishLoad:
– webView:didFailLoadWithError:

の4つがあるんですが、
このStartとかが実は複数回呼ばれることがあるみたいなんですね


どっかのWebには
「iframeを使っているサイトの場合、複数回呼ばれる」
みたいなかんじで書いてあったんですが、
まぁiframeって滅多にないよな~って思ってたのが間違いの原因・・・

おそらくですが、これ、短縮URLにアクセスしたときも複数回呼ばれる可能性があるっぽいんですね

短縮URLといえばこの時代、結構ありますよね・・・・・
ってなわけで、2度3度呼ばれるのは当然!みたいです・・・・・


調べたところ、ちゃんとStartとFinishの数は合うみたいなんで、
retainCountみたいに
startが呼ばれたらcount++;
finishが呼ばれたらcount--;

ってやってやれば、本当に終了したときってのもわかるっぽいです


途中経過のfinish通知とかいらないのになんでこんな仕様にしたんだろ?