检查 NSURL 加载完成

发布于 2024-09-02 03:37:57 字数 148 浏览 4 评论 0原文

我正在 NSURL 中寻找“完成或完成”的东西 -> NSstring initWithContentsOfUrl

我找到了“URLResourceDidFinishLoading”,但这似乎已被贬值,

我找不到任何东西,但也许我搜索了错误的东西。

I'm looking for a "did finish, or finish" thing in NSURL -> NSstring initWithContentsOfUrl

I found "URLResourceDidFinishLoading" but this seems to be depreciated

I couldn't find any but maybe I searched for the wrong thing.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雨后咖啡店 2024-09-09 03:37:57

如果您正在谈论 NSString 中的 -initWithContentsOfURL:,则它已 已弃用

但即使您正在使用它,它也是一个同步方法 - 这意味着您的代码将暂停,直到数据加载到生成的 NSString 对象中:

NSURL *url = [NSURL URLWithString:@"http://google.com"];
NSString *htmlData = [NSString stringWithContentsOfURL:url];
NSLog(@"%@", htmlData); // you have your data loaded here, synchronously.

所以,需要明确的是:这是一个 不好的做法有两个原因:

  1. 您使用的是已弃用的方法,该方法很可能会在未来的 SDK 版本中被删除;
  2. 您在从网络加载某些内容时冻结了 UI,同时不向用户提供任何反馈。

您需要的可能是 < code>NSURLRequest 创建请求对象和 NSURLConnection 来实际从网络加载它。

If you're talking about -initWithContentsOfURL: from NSString, it has been deprecated.

But even if you are using it, it's a synchronous method - meaning your code will halt until the data has been loaded into the resulting NSString object:

NSURL *url = [NSURL URLWithString:@"http://google.com"];
NSString *htmlData = [NSString stringWithContentsOfURL:url];
NSLog(@"%@", htmlData); // you have your data loaded here, synchronously.

So, just to be clear: this is a bad practice for two reasons:

  1. You're using a deprecated method which will most likely be removed on future SDK versions, and;
  2. You're freezing your UI while loading something from the network, while giving no feedback to the user whatsoever.

What you need is probably NSURLRequest to create your request object and NSURLConnection to actually load it from the network.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文