dataWithContentsOfURL方法为什么会经常失败
2020-12-04 本文已影响0人
落叶兮兮
最近,在尝试使用iOS的第三方框架Hpple来爬去网站上的小说
Hpple的使用方法是需要传入NSData字段
TFHpple *hpple = [[TFHpple alloc] initWithHTMLData:data];
为了获得NSData,我最初使用的是
NSData *data = [NSData dataWithContentsOfURL:url];
url使用的是某个小说网站的网址
结果经常出现错误
有时能解析成功,有时会报错,经过调试发现能够获取data数据,但是hpple在解析data时经常找不到相应的元素
我一直以为是Hpple这个第三方框架的问题,直到我看到苹果官方文档关于dataWithContentsOfURL的介绍
image.png image.png
意思就是,使用dataWithContentsOfUrl方法,只适合于本地的小文件读取
本地的大文件转换为NSdata需要使用inputStreamWithUrl
千万不要用这个方法去读取基于网络url,这可能会导致各种各样的问题,对于网络url,还是老老实实使用dataTaskWithUrl:Completion Hansler这个方法吧