0

JSON文字列を提供するWebサーバーページを呼び出したばかりのアプリがあります。ローカル ネットワークにいるときはすべて問題なく動作しますが、ローカル ネットワークの外部で VPN を使用せずにアプリを開くと、アプリがクラッシュします。json 文字列を制御するにはどうすればよいですか? これは私のコードです:

NSString *urlstr = [[NSString alloc] initWithFormat:@"%@yes.php", av];
NSURL *url = [[NSURL alloc] initWithString:urlstr];

NSError* error = nil;
NSString* urlString = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:&error];
NSString *newStr;

NSData* data=[newStr dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data 

                                                     options:kNilOptions 
                                                       error:&error];

sn1 = [[json objectForKey:@"Rele1"] intValue];

json の回答を NULL 値と比較したいのですが、2 つのパラメーターが等しい場合はアラートを表示します。

編集:任意の値を読み取ろうとすると、json 応答を待ってアプリがクラッシュします... n 秒後に接続を閉じる timeoutInterval パラメーターを使用して NSURLRequest の問題を回避しました。

4

2 に答える 2

0

このコードは機能しましたか?

  1. error後で確認する必要があります[NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:&error];
  2. URL データを読み込んでいますurlStringが、初期化されていない状態から NSData を取得しnewStrて解析しますか?
  3. error繰り返しますが、何よりも先に提供するときは常に確認する必要があります
  4. データを ASCII として読み取るのに、NSData を UTF8 として読み取るのはなぜですか?
于 2012-11-01T20:08:39.293 に答える