AucionSentinel 1.9.9をリリース

ヤフオクの仕様変更に対応すべく、AuctionSentinelをバージョンアップしました。

wpid-AuctionSentinel001-2008-09-23-12-53.jpg

実は、見かけ上は対応できているんですけど、今回の対応作業を行っていて、どうしても解決できない問題に遭遇してしまい、やむなく、対処療法で一時的な解決をしている次第。トホホ。

WebKitでは、リソースやコンテンツの読み込みの状況をデリゲートと呼ばれる仕組みで、作成したプログラム上でチェッチアップすることができます。細かいところは省きますが、コンテンツの読み込みが正常に完了すると”didFinishLoadForFrame”という関数が呼ばれ、コンテンツの読み込みに失敗すると”didFailLoadWithError”という関数が呼ばれます。で、ヤフオクの出品情報画面をプログラムで自動的に読み込もうとすると確実にエラーになってしまいます。ただ、手動で出品情報画面を閲覧している時は、このような状態にはなりません。この点が、どうしても判らないところだったりします。

ちなみに、どんなエラーが発生するかと言うと、

WebKitが直接通知してくるエラーを日本語にプログラム的にローカライズすると、”操作を完了できませんでした。(NSURLErrorDomain エラー -999)“という内容のエラーになります。で、この内容を開発用のドキュメントで調べてみると、先ほどのTALKで翻訳の素材にした

NSURLErrorCancelled

Returned when an asynchronous load is canceled.

A Web Kit framework delegate will receive this error when it performs a cancel operation on a loading resource. Note that an NSURLConnection or NSURLDownload delegate will not receive this error if the download is canceled.”

という内容になります。少なくとも、プログラム上、キャンセル操作は自動化していませんので、だれがキャンセルしたのか正直なところ不明。

プログラムの中身のことをお話すると、こんな状況なわけですが、このまま、あ、そうですか、っていうわけにもいかないので、今回はこの状況を受け止め、このような状況でもプログラムが実行できるように改良してあります。ですが、POOH以外の環境でも、見かけ上、ちゃんと動くかどうか、というところまでは確認できていません。

もし、プログラム的なアドバイス、あるいはご自身の環境で不具合が発生、といったことがあれば、是非、教えて下さい。よろしくお願いします。

tomohiko

長年に渡りMacintosh向けの自作アプリを作り続けているPOOHです。最近はiPhone,iPad向けアプリ開発にも挑戦中。グルメ、旅行、露天風呂、写真、サイクリング、映画、STAR TREKが大好き。レトロでSFなおもちゃを大量にコレクション。プレーリードッグと同居中。

おすすめ

コメントを残す