忍者ブログ
iphone開発とかモンハンとか日々思ったこととか・・・
プロフィール
HN:
ritzii
性別:
男性
職業:
iphoneアプリとか作る人
趣味:
もんはん
自己紹介:
2009/04~仕事ないです。
その後1ヶ月モンハンだけですごすorz

っというわけで5月からiphoneアプリ開発をはじめました!
xcodeどころかmacも初めて…

作ったアプリのサイトはこちら
Sky-Remora
フリーエリア




×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

UIWebViewを使用していると避けては通れないところだと思いますが、
現在作っているのがまさにブラウザなので直面しました。

プロトコルの定義がoption項目なのでスルーしてしまいたい、
しかし通信エラー等をユーザに通知していない場合は、
apple store申請時にことごとくリジェクトをされてしまいます。
(ここについてはいろいろな開発者さんたちのブログに書かれていますね)

というわけで単純にエラーがおきたらアラートを出してみました。
- (void)webView:(UIWebView*)view didFailLoadWithError:(NSError*)error {
	
	UIAlertView *alert = [[UIAlertView alloc]
	initWithTitle:@"error notice"
	message:@"error occurred"
	delegate:self
	cancelButtonTitle:@"OK"
	otherButtonTitles:nil];
	[alert show];
	[alert release];
}
結局これではいけてないんですが。


これだとアラートが出過ぎちゃうんです。

ページ読込みを中止しただけでも出るのでリンクをペチペチするだけで出ちゃいますね。。。

完全にアウトです。

という訳でエラーコードによる振り分けをしようかと思いまして、調べてみました。
typedef enum
{
   NSURLErrorUnknown = -1,
   NSURLErrorCancelled = -999,
   NSURLErrorBadURL = -1000,
   NSURLErrorTimedOut = -1001,
   NSURLErrorUnsupportedURL = -1002,
   NSURLErrorCannotFindHost = -1003,
   NSURLErrorCannotConnectToHost = -1004,
   NSURLErrorDataLengthExceedsMaximum = -1103,
   NSURLErrorNetworkConnectionLost = -1005,
   NSURLErrorDNSLookupFailed = -1006,
   NSURLErrorHTTPTooManyRedirects = -1007,
   NSURLErrorResourceUnavailable = -1008,
   NSURLErrorNotConnectedToInternet = -1009,
   NSURLErrorRedirectToNonExistentLocation = -1010,
   NSURLErrorBadServerResponse = -1011,
   NSURLErrorUserCancelledAuthentication = -1012,
   NSURLErrorUserAuthenticationRequired = -1013,
   NSURLErrorZeroByteResource = -1014,
   NSURLErrorFileDoesNotExist = -1100,
   NSURLErrorFileIsDirectory = -1101,
   NSURLErrorNoPermissionsToReadFile = -1102,
   NSURLErrorSecureConnectionFailed = -1200,
   NSURLErrorServerCertificateHasBadDate = -1201,
   NSURLErrorServerCertificateUntrusted = -1202,
   NSURLErrorServerCertificateHasUnknownRoot = -1203,
   NSURLErrorServerCertificateNotYetValid = -1204,
   NSURLErrorClientCertificateRejected = -1205,
   NSURLErrorCannotLoadFromNetwork = -2000,
   NSURLErrorCannotCreateFile = -3000,
   NSURLErrorCannotOpenFile = -3001,
   NSURLErrorCannotCloseFile = -3002,
   NSURLErrorCannotWriteToFile = -3003,
   NSURLErrorCannotRemoveFile = -3004,
   NSURLErrorCannotMoveFile = -3005,
   NSURLErrorDownloadDecodingFailedMidStream = -3006,
   NSURLErrorDownloadDecodingFailedToComplete = -3007
}
なんか多いですね、とりあえず-999がキャンセルなのでこいつだけスルーするため最初にコードチェックを追加。
	NSInteger err_code = [error code];
	if (err_code == NSURLErrorCancelled) {
		return;
	}
後はどうするか、以下の案から決めようと思います。
(参考にしようにも、この辺に注目した記事が見当たらなくて、海外サイトはうまく絞り込めず断念。)

① このままでいいよ。(どんなエラーも同じメッセージ)

② URLがダメとかサーバー状態がダメ系に分類してmessageを分ける。

③ 全部分ける、この場合は定数定義の後半をまんま表示する感じですかね。

UIWebViewのエラーは他の開発者さんがどう実装してるのか気になるところですね。

※codeは実際のものをすっきりさせているのでコンパイルしてないです。


↑今のところ初心者用で一番よい本だと思います。一番使用頻度が高いです。


↑初心者向け?ではないかもしれません、VC,java等の経験があれば読みやすいかと、いわゆる木下本ですがamazonのレビューはあまりよくないですね、
最初のころは日本語の書籍が少なかったので多くの人が持ってる一冊だとは思います。
PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
09 2017/10 11
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
最新コメント
[07/02 ritzii]
最新トラックバック
ブログ内検索
バーコード
P R
忍者ブログ [PR]