【发布时间】:2011-10-31 05:55:14
【问题描述】:
非常感谢Convert NSData bytes to NSString? 的文章,尤其是@christo16。我以前依赖 ASIHttpRequest 只是为了从 PHP 服务器中获取价值。现在只使用这行代码:
NSString *pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:@"http://www.apple.com"]]
我可以获得我想要的功能。
但为什么有时该行会导致 pageContents 为 NULL。我已经把那行改成这样了:
NSString *fullUrl = [NSString stringWithFormat:@"http://www.apple.com"];
NSURL *url = [[NSURL alloc] initWithString:fullUrl];
NSData *pageContents;
NSString *response = NULL;
while(response==NULL)
{
pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:fullUrl]];
response = [NSString stringWithUTF8String:[pageContents bytes]];
NSLog(@"content = %@", response);
}
有没有更好的方法来做到这一点?到目前为止,我没有任何问题。我只是想知道是否有更优雅的方式来实现相同的结果
谢谢
【问题讨论】:
-
单行的缺点是它会阻塞你的用户界面,可能会阻塞很长时间。循环更糟糕:如果服务器没有响应连接,那么它将永远有效地阻塞 UI(直到 SpringBoard 受够并杀死你的进程)。
标签: objective-c cocoa