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/参考/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 回答