![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=1739541863-aaOy4xn3hDTDvtjvABs6Fljr1aDwaV6R-0-12a83014a84f7ba8d3bca5aeb2a8b55f)
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=1739541863-lzC05erLFRnyV78L9YiiRrvp593AgtR3-0-2d5ed7dcdf1da5f3e6e00a58560c49b8)
在示例代码中,创建一个NSURL对象,并且指向一个网络地址,通过调用NSString类的stringWith-ContentsOfURL:encoding:error:可以获取NSURL对象指向地址中存储的数据,并转换成字符串形式。如下所示,得到的结果是该网址的html源码。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T122_14916.jpg?sign=1739541863-9uyUC90tZIWEsKN8uG1G7vfxDK3QoQvN-0-afcfa7d3b4ed41a39ddb58ea4598c8e8)
运行结果如图4-33所示。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-P123_14990.jpg?sign=1739541863-5EwxRlmiyE5TNlhykTcvvQ0DIbquQ9Qb-0-0762e78fd10fe0685f7e9f82aab577a2)
图4-33 运行结果
- 获取NSData类的输出内容。例如可以通过网址获取一张图片的二进制数据,然后再转换成UIImage对象。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T123_14994.jpg?sign=1739541863-pMqLJMxb56himldQ6qlo4wMDH532dftY-0-11bc8deaf9f48e80d2949d1500e513ec)
下方的示例代码中,访问同样的NSURL对象,但返回NSData类的对象,通过打印出的日志可以看到,返回的内容是以编码形式存储的。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T123_14996.jpg?sign=1739541863-6MlvjDf7ZTo1FfWJpsoRnDyA0XD9xSos-0-7b91d8df485c366027b9766243e9719c)
运行结果如图4-34所示。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-P123_14998.jpg?sign=1739541863-W0Uwlq4P3ktSnX55uYxgH9jPGd9qKE2w-0-92cfdbec152e79a8d2e5209039729da0)
图4-34 运行结果