0

私はこのNSURLを次のように持っています:

NSURL *url = [NSURL URLWithString:@"http://jamessuske.com/isthedomeopen/isthedomeopenGetData.php"];

インターネットに接続しているときは正常に動作します。しかし、そうでない場合 (またはユーザーに信号がない場合) を表示したいと思いUIAlertViewます。以下のコードを (if ステートメントの有無にかかわらず) 試しましたが、アプリがクラッシュします。

if(!url){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Test Message"
                                                            message:@"This is a test"
                                                           delegate:nil
                                                  cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
            [alert show];
            [alert release];
}

私は何を間違っていますか?

クラッシュとは、アプリが開き、URL からデータを取得できないことを意味します。エラーは表示されません。このハイライターのあるページに移動するだけです。

Thread 6
com.app.root.default-priority 
     - 0 ucol_getVersion

その隣には、この強調表示されたウィンドウがあります

0x17bbd32: movl 204(%ecx), %edx Thread 6: EXC_BAD_ACCESS (code=2 address=0xcc)
4

2 に答える 2

1

あなたがしていることは、オブジェクトurlNULLポインタであるかどうかをチェックするだけです。ユーザーがインターネットに接続しているかどうかを確認したい場合は、Reachabilityオンラインで簡単に見つけることができるクラスを試すことをお勧めします。これは私にとって非常に便利です。

于 2013-07-13T02:33:26.417 に答える
0

Apple によるインターネット接続要件を備えたアプリを開発している場合は、インターネットの可用性を確認することをお勧めします。Apple は .h および .m ファイル、つまり Reachability.h および Reachability.m も提供しているため、それらのファイルをダウンロードして、プロジェクトと「internetConnectionStatus」という名前のパラメーターがあり、その値によって以下のアラートを使用します

if (internetConnectionStatus == NotReachable)
{
    UIAlertView *responseAlert = [[UIAlertView alloc] initWithTitle:@"Network Error"
                                                            message:@"This application requires network connectivity."
                                                           delegate:self
                                                  cancelButtonTitle:@"Exit"
                                                  otherButtonTitles:@"Continue", nil];
    [responseAlert show];


}
else
{ //do other stuff here
}

ここで到達可能性ファイルを見つけることができ、github ThnQ から任意の到達可能性ファイルを使用できます

于 2013-08-06T08:25:06.823 に答える