0

如何使用目标 c 在 mac osx 中从 Internet 下载文件我尝试使用copyItemAtURL:toURL:error:in 方法NSFileManager但没有成功。域是公共的,因此不需要身份验证。

4

1 回答 1

1

NSFileManager不支持 HTTP URL。您需要使用NSURLConnection该类来执行 HTTP 请求。

如果要执行同步 HTTP 请求(例如,对于控制台应用程序或 GUI 应用程序的后台线程),那么基本工作流程是:

  1. NSURLRequest为您想要的 URL构建一个
  2. 称呼+[NSURLConnection sendSynchronousRequest:returningResponse:error:]
  3. 调用-[NSFileManager createFileAtPath:contents:attributes:]以将结果保存NSData到所需的目标文件。

如果你需要做一个异步请求,那就有点复杂了。在这种情况下,您将创建一个符合NSURLConnectionDelegate协议的对象,将其设置为NSURLConnection对象的委托,然后执行请求。完成后,您可以将其保存到上述文件系统中。细节留给读者作为练习。

于 2013-01-15T04:56:57.283 回答