国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

IOS開發之OC篇(9)—— NSURL

2019-11-07 23:04:01
字體:
來源:轉載
供稿:網友

版本

Xcode 8.2.1

NSURL簡介

遇到一個生詞,管他三七二十一,先百度一下再說。

NS——iOS命名規范倡導一個類或者方法的開頭兩個或三個大寫字母指代公司或者編碼者的個人名稱,或者框架名稱等容易與其他的東西區別開來的東西。NS代表的是NeXTSTEP,是Jobs在1985年離開水果的時候創建的公司名稱。后來水果在1997年又把這個公司重新買下來,里面的一部分東西成為OS X和iOS的一部分。URL——統一資源定位符是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎么處理它。

當然也會搜索到很多關于NSURL的博客,包括介紹和用法等等。但如果我們還不放心,不確定他們寫的是否完全準確,怎么辦?來,打開Xcode新建一個NSURL工程,我們來看看官方文檔怎么說。

方法1:隨便找個.h或者.m文檔輸入NSURL,按option+鼠標左擊;方法2:鼠標點擊NSURL,打開Xcode右邊欄,找到Quick Help(帶問號的那個圖標);方法3:Help–>Documentation And API Reference–>搜索框內搜索NSURL。

通過以上方法,我們得到蘋果的官方文檔如此描述:

NSURL——An NSURL object rePResents a URL that can potentially contain the location of a resource on a remote server, the path of a local file on disk, or even an arbitrary piece of encoded data. (NSURL對象代表了一個URL,可能是包含在遠程服務器上的資源位置,本地磁盤上的文件路徑,甚至任意一段編碼的數據。)

好了好了,了解得差不多了,下面我們來總結一下NSURL的一些概念和性質:

NSURL是一個包含了很多請求參數的類(class)。NSURL最主要的參數為URLString字符串地址(如“www.baidu.com”)。其他請求參數:scheme、host、port、user、passWord等等。這里寫圖片描述NSURL可以是網絡資源位置、本地文件路徑或者編碼后的數據等等。

NSURL用法

int main(int argc, char * argv[]) { //通過一個URL實例化一個NSURL對象 NSURL *baiduUrl = [NSURL URLWithString:@"https://www.baidu.com"]; //向服務器請求文本 //百度首頁的HTML文本 NSString *baiduHtmlStr = [[NSString alloc]initWithContentsOfURL:baiduUrl encoding:NSUTF8StringEncoding error:nil]; NSLog(@">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>baidu HTML string = %@",baiduHtmlStr); //保存到本地 [baiduHtmlStr writeToFile:@"/Users/tailor/Desktop/baidu.html" atomically:YES encoding:NSUTF8StringEncoding error:nil]; //通過本地路徑生成NSURL對象 NSURL *localUrl = [NSURL fileURLWithPath:@"/Users/tailor/Desktop/baidu.html"]; //從本地讀取數據 NSString *localStr = [[NSString alloc]initWithContentsOfURL:localUrl encoding:NSUTF8StringEncoding error:nil]; NSLog(@">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Local String = %@",localStr); //從服務器請求MP3數據(非文本)、圖片// NSURL *mp3Url = [NSURL URLWithString:@"算了,找不到可用的連接o(╯□╰)o"]; NSURL *imageUrl = [NSURL URLWithString:@"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1488103436194&di=414e9eb226ad165684395e116dab1d9e&imgtype=jpg&src=http%3A%2F%2Fimg0.imgtn.bdimg.com%2Fit%2Fu%3D181280083%2C2434727418%26fm%3D214%26gp%3D0.jpg"]; //請求二進制數據// NSData *mp3Data = [NSData dataWithContentsOfURL:mp3Url]; NSData *imageData = [NSData dataWithContentsOfURL:imageUrl]; //直接寫入本地保存// [mp3Data writeToFile:@"/Users/tailor/Desktop/song.mp3" atomically:YES]; [imageData writeToFile:@"/Users/tailor/Desktop/test.jpg" atomically:YES]; //請求文本(JSON字符串) //JSON(javaScript Object Notation)是一種輕量級的數據交換格式。它基于 ECMAScript 的一個子集。JSON 采用完全獨立于語言的文本格式,但是也使用了類似于 C 語言家族的習慣(包括 C、C++、 C#、Java、Javascript、Perl、Python 等)。這些特性使 JSON 成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成(一般用于提升網絡傳輸速率)。 NSString *jsonStr = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"https://www.baidu.com"] encoding:NSUTF8StringEncoding error:nil]; NSLog(@">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>jasonStr = %@",jsonStr); //轉換成為data NSData *jsonData = [jsonStr dataUsingEncoding:NSUTF8StringEncoding]; //把Jason字符串轉換成為OC的對象 id obj = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers //解析選項 error:nil]; NSLog(@">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>obj.class = %@, obj = %@",[obj class],obj); //直接使用二進制請求文本 NSData *bookData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://www.baidu.com"]]; //轉換成為OC的對象 NSMutableDictionary *dic = [NSJSONSerialization JSONObjectWithData:bookData options:NSJSONReadingMutableContainers error:nil]; NSLog(@">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>name = %@",dic[@"List"][0][@"name"]);}

結果: 這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金乡县| 青浦区| 万山特区| 长治市| 仲巴县| 焦作市| 阿合奇县| 阿克陶县| 沧州市| 柳江县| 汕尾市| 兴安县| 台中县| 阿瓦提县| 庆安县| 启东市| 云梦县| 涟水县| 怀集县| 开原市| 邢台县| 循化| 韶山市| 建宁县| 开鲁县| 定陶县| 靖江市| 蓝山县| 城口县| 博爱县| 苏州市| 宁陕县| 新源县| 尚志市| 普兰店市| 嘉义市| 瓮安县| 宝清县| 桂阳县| 太康县| 彰化县|