- iOS开发:从零基础到精通
- 史昕
- 519字
- 2021-04-02 04:13:36
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=1739310598-wICNNqf4cZA2ljwC6m6mBoFaXGjmIwv6-0-f646fbd30801aeea017288ca70688b11)
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=1739310598-HB09tPE6v4tuIg5fF2vJ5I8NgCvsD9o7-0-36616ba515e2838435ea265523742d31)
在示例代码中,创建一个NSURL对象,并且指向一个网络地址,通过调用NSString类的stringWith-ContentsOfURL:encoding:error:可以获取NSURL对象指向地址中存储的数据,并转换成字符串形式。如下所示,得到的结果是该网址的html源码。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T122_14916.jpg?sign=1739310598-8vJa2fwzso29Mw1EbjgFwQanwPSrTRsL-0-dfffff3df42f0e35789a6b1bef4206ca)
运行结果如图4-33所示。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-P123_14990.jpg?sign=1739310598-b7UM1YTXBILtVgRtAnHdG8ImwGmz93iP-0-eeb1524316f7bb3dc1a03e52325a505f)
图4-33 运行结果
- 获取NSData类的输出内容。例如可以通过网址获取一张图片的二进制数据,然后再转换成UIImage对象。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T123_14994.jpg?sign=1739310598-2cXFGoqOP1MtvgQR2Ih59PD6Yh4EqQ5G-0-9180d4bf07d27d6b9ff46d4aedab8762)
下方的示例代码中,访问同样的NSURL对象,但返回NSData类的对象,通过打印出的日志可以看到,返回的内容是以编码形式存储的。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-T123_14996.jpg?sign=1739310598-gYDXaN6a8aD8wVYrc0x8BHBF9HuNa6rn-0-3158aa1bf49e24417d811c6862ea622a)
运行结果如图4-34所示。
![](https://epubservercos.yuewen.com/D4B438/15253388904120706/epubprivate/OEBPS/Images/Figure-P123_14998.jpg?sign=1739310598-ogcYpkVCBcX8vS8oNG19EHNdgQlDBYOw-0-0df10e39d81554a5a20fececa65e465b)
图4-34 运行结果