【问题标题】:Does all data from URL get loaded into NSData at initialization?初始化时是否将 URL 中的所有数据加载到 NSData 中?
【发布时间】:2010-09-10 20:45:30
【问题描述】:

当我这样做时究竟会发生什么...?

NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL urlWithString:@"..."]];

它会立即连接到 Internet,获取 URL 中的所有数据,然后返回并转到下一行吗?还是它设置了一些东西,然后在请求 NSData 的字节时读取数据?如果后面再读数据,是不是一口气读完所有数据?还是应用需要时零碎读取数据?

我的基本问题是我有一个非常大的 XML 文件要解析。如果我设置一个 NSData 对象并通过 NSXMLParser 解析它,应用程序是否会因为 XML 数据太大而炸毁?还是应用程序“做正确的事”并将 XML 解析为数据字节流?

谢谢!

【问题讨论】:

    标签: iphone memory nsxmlparser nsdata


    【解决方案1】:

    它会立即进入网络并为您获取该数据。您的应用程序将阻塞,直到请求完成。从主线程执行此操作通常不是一个好主意,因为用户界面会阻塞,从而使您的应用程序无响应。

    如果您使用此方法加载大型 XML 文件,则整个文件将被读入内存,应用程序将阻塞,直到完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-24
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多