![iOS开发:从零基础到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/796/26793796/b_26793796.jpg)
上QQ阅读APP看书,第一时间看更新
4.8 NSURL类
NSURL类提供在应用中使用URL地址的相关方法。例如,给出链接到互联网上的一个文件路径的地址,然后调用其他类的方法就可以读取到这些文件的内容。另外,在Foundation框架中,有很多方法都是使用NSURL对象作为参数的。
1.创建NSURL对象
虽然大家看到的网络地址是以字符串形式展示的,但NSURL对象并不是一个字符串,例如@“http://www.99ios.com”。在NSURL类中提供了URLWithString:方法,可以把一个字符串转化成为一个NSURL对象。除此之外,还可以使用initWithString:方法。代码如下所示。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T122_14912.jpg?sign=1738855428-EHXvQB4KiryIUVi0FJG6C0WiRHWVzLZj-0-e37e72fe6c7fa1d8150743d068dff3e5)
2.获取输出
由于NSURL对象保存的是一个地址,因此可以获取NSURL对象对应链接中存储的内容,NSURL对象通常作为方法的参数存在。在Foundation框架中,NSString类、NSArray类、NSDictionary类以及NSData类等,都有一些方法可以获取某个NSURL对象对应的内容。
- 根据NSURL存储的地址,获取NSString类的对象。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T122_14914.jpg?sign=1738855428-QxLkzpPCK6HdVsxwd0nkxx9zY4FrzP5Z-0-328cf6161233301007bc7f614a05051f)
在示例代码中,创建一个NSURL对象,并且指向一个网络地址,通过调用NSString类的stringWith-ContentsOfURL:encoding:error:可以获取NSURL对象指向地址中存储的数据,并转换成字符串形式。如下所示,得到的结果是该网址的html源码。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T122_14916.jpg?sign=1738855428-ktBTFaQA0I9l87cKd3i1qToVSLa9ZuZs-0-a3e8ad5f85623347917d1c44f04ce34b)
运行结果如图4-33所示。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-P123_14990.jpg?sign=1738855428-qMhzqvdD1RdVHyj2rPR2ul7yLA0V7MuS-0-f23f25e9282ae7064d1f93aa0cde1205)
图4-33 运行结果
- 获取NSData类的输出内容。例如可以通过网址获取一张图片的二进制数据,然后再转换成UIImage对象。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T123_14994.jpg?sign=1738855428-izTknJF83S2a6X4kJZne8C9yJEOgoMyq-0-08176e1e0e00787d8ebe164a21a22f48)
下方的示例代码中,访问同样的NSURL对象,但返回NSData类的对象,通过打印出的日志可以看到,返回的内容是以编码形式存储的。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T123_14996.jpg?sign=1738855428-51dpGDPEJdkG8zPorWkBgiSUocfojBdc-0-1d0fae79c27df3215f38d878f47739ee)
运行结果如图4-34所示。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-P123_14998.jpg?sign=1738855428-AYOvKYFI1r32yVL3pYXE1wksarrepHBB-0-2875e177508c20c2bce519c4ba5e9f9e)
图4-34 运行结果