![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=1739314851-WVTUcidS6tDt6mg4OpdBRp4GFwlVPS7i-0-2f1b6044b0832c6742120a692343e10e)
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=1739314851-X6zinMQK6DrOVMQ1442vRtvNGKXQR80d-0-04790f94dc6155afa99a1bc883770e58)
在示例代码中,创建一个NSURL对象,并且指向一个网络地址,通过调用NSString类的stringWith-ContentsOfURL:encoding:error:可以获取NSURL对象指向地址中存储的数据,并转换成字符串形式。如下所示,得到的结果是该网址的html源码。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T122_14916.jpg?sign=1739314851-n5PkQWKQYKcnV2Non3MYqjADTy9hPJjN-0-a239dcba36df547c0f5963ce41b16a87)
运行结果如图4-33所示。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-P123_14990.jpg?sign=1739314851-v1ZPo6lmrZs8PFan7PDRurQPRBY1QAqW-0-98d56bdbd16ece72cb7ba7ae6e917e81)
图4-33 运行结果
- 获取NSData类的输出内容。例如可以通过网址获取一张图片的二进制数据,然后再转换成UIImage对象。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T123_14994.jpg?sign=1739314851-D6F8mYkDpzGz4Dwu11H818nleYZWR7px-0-35fc497bd539e35f8f5a037410e19e65)
下方的示例代码中,访问同样的NSURL对象,但返回NSData类的对象,通过打印出的日志可以看到,返回的内容是以编码形式存储的。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T123_14996.jpg?sign=1739314851-8SNrF7WpON4wUkPLMg7wVJztOFq7RoRd-0-c1dd25087c92b836e83ae068900f6369)
运行结果如图4-34所示。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-P123_14998.jpg?sign=1739314851-BTpgboNy0K7ZNEunk6zFkWN0FFOTJXPk-0-ba95994efd7bd7e4c26baeb9427e24a0)
图4-34 运行结果