0
NSURL *jsonURL = [NSURL URLWithString:@"http://ambiguous.dubbelzinnig.com/index.php?    get_cat=1"];

NSString *jsonData = [[NSString alloc] initWithContentsOfURL:jsonURL];

if (jsonData == nil) {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Webservice Down" message:@"The webservice you are accessing is down. Please try again later."  delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
    [alert show];
    [alert release];
}
else {...

initWithContentsOfURL を変更する必要があるようですが、開発者ガイドに記載されていることを試しましたが、機能しません...誰かこのコードを修正してもらえますか?

本当にありがとう!

4

2 に答える 2

2

initWithContentsOfURL:encoding:error:またはのinitWithContentsOfURL:usedEncoding:error:代わりに使用してください。

例えば:

NSURL *jsonURL = [NSURL URLWithString:@"http://ambiguous.dubbelzinnig.com/index.php?get_cat=1"];
NSError *error = nil;
NSString *jsonData = [[NSString alloc] initWithContentsOfURL:jsonURL encoding:NSUTF8StringEncoding error:&error];
if( error == nil ) {
    // Parse jsonData
} else {
    // There was a problem
}

エンコーディング値を実際のエンコーディングタイプの列挙型に置き換える必要があります。NSStringクラスで利用できるこの目的のための多くの列挙型があります... https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/の「StringEncodings」セクションを参照してください。 Reference / NSString.html

于 2012-11-19T17:59:21.047 に答える
1

ドキュメントを見てみませんか?

initWithContentsOfURL:

指定された URL で指定された場所からデータを読み取ることにより、新しく割り当てられた NSString オブジェクトであるレシーバーを初期化します。(OS X v10.4 では非推奨。 代わりにinitWithContentsOfURL:encoding:error:または initWithContentsOfURL:usedEncoding:error:を使用してください。)

于 2012-11-19T18:03:48.323 に答える