如何从特定网址下载文件?

时间:2010-04-23 06:06:51

标签: objective-c

NSURL * url = @"http://192.168.100.161/UploadWhiteB/wh.txt";
NSData * data = [NSData dataWithContentsOfURL:url];

if (data != nil) {
  NSLog(@"\nis not nil");
  NSString *readdata = [[NSString alloc] initWithContentsOfURL:(NSData *)data ];

我编写此代码以从给定的URL下载文件...但是我在行上收到错误
NSData * data = [NSData dataWithContentsOfURL:url];

未被捕获的例外......

所以请帮帮我。

3 个答案:

答案 0 :(得分:4)

你的第一行应该是

NSURL * url = [NSURL URLWithString:@"http://192.168.100.161/UploadWhiteB/wh.txt"];

NSURL不是字符串,但可以很容易地从一个字符串构建。)

我希望你在第一行收到编译器警告 - 忽略编译器警告是不好的。第二行失败,因为dataWithContentsOfURL:期望得到一个指向NSURL对象的指针,当你传递一个你输入NSURL*的指针时,url是实际上指向NSString对象。

答案 1 :(得分:2)

    NSString *file = @"http://192.168.100.161/UploadWhiteB/wh.txt";
    NSURL *fileURL = [NSURL URLWithString:file];

    NSLog(@"qqqqq.....%@",fileURL);

    NSData *fileData = [[NSData alloc] initWithContentsOfURL:fileURL];

答案 2 :(得分:0)

-[NSString initWithContentsOfURL:]已弃用。您应该使用-[NSString (id)initWithContentsOfURL:encoding:error:]。在任何一种情况下,URL参数都是NSURL实例,而不是NSData实例。当然,尝试使用错误的类型初始化字符串时会出错。您可以使用-[NSString initWithData:encoding:]使用URL数据初始化字符串,或者直接从URL初始化字符串。