iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど 以前、Cocoaの日々: ネットワーク接続状況を知る[2] SCNetworkReachabilityGetFlags はブロックする という記事を書いたがそのブロックの原因がわかった。 SCNetworkReachabilityCreateWithName 以前は、SCNetworkReachability のインスタンスを作るのにホスト名ベースの関数を使っていた。こんな感じ。 SCNetworkReachabilityCreateWithName(kCFAllocatorDefault, [@"xcatsan.com" UTF8String]);この後、接続性をチェックする為に SCNetworkReachabilityGetFlags() を呼び出すとブロックするケースがあった、
iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど [2011-07-08追記] ブロックの原因が判明、下記もどうぞ。 Cocoaの日々: [iOS] SCNetworkReachabilityGetFlags のブロックの件 以前、Cocoaの日々: ネットワーク接続状況を知る というブログを書いた。 その後わかったことを紹介する。 SCNetworkReachabilityGetFlags がブロックする件 ネットワーク接続状況を取得する SCNetworkReachabilityGetFlags関数 が処理中にブロックしてしまうことがわかった。次の環境でブロックする現象が確認できた。 ・iPhone 3GS/iOS4.2 ・3GS→× WiFi→◯ ※フライトモード+WiFi有効 ・WiFiルータ→× ※インターネット非接続(
ネットワーク接続状況を知るための API等を調べてみた。前半はアップル提供のサンプルコードについて、後半は自作サンプルについて(ソースコードは GitHubで公開)。 アップル提供のサンプルコード Reachability SystemConfiguration フレームワークを使うとネットワークの接続状況(WiFi利用または3G回線利用か、接続不可か)を知ることができる。 iOS Reference Library に Reachability というサンプルがある。 Reachability: Classes/Reachability.m WiFi接続時 この程度の情報が取れることがわかる。 利用は、まず SCNetworkReachabilityRef を取得する。 SCNetworkReachabilityRef reachability = SCNetworkReachabili
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く