簡(jiǎn)述沙盒機(jī)制是什么
- 1.每一個(gè)應(yīng)用程序都有一個(gè)屬于自己的沙盒目錄
- 2.只能訪問(wèn)自己的沙盒目錄
- 3.不能訪問(wèn)其他應(yīng)用程序的目錄
獲取沙盒目錄路徑
NSString* sandBoxPath = NSHomeDirectory();
NSLog(@"sanBoxPath = %@", sandBoxPath);
//sanBoxPath = /Users/vijay/Library/Developer/CoreSimulator/Devices/8FE0176D-D626-4C92-A534-0FC41627A416/data/Containers/Data/Application/2803A31F-A9B3-4191-A740-EFB4FD374DBF
沙盒目錄(4個(gè)):
Documents 存儲(chǔ)配置信息 開(kāi)機(jī)動(dòng)畫 背景音樂(lè) plist文件 圖片
Library 存儲(chǔ)用戶緩存凿将、下載數(shù)據(jù)等(如果存放在Documents中难述,蘋果不讓上架審核通過(guò))
tmp 存儲(chǔ)臨時(shí)數(shù)據(jù) (APP退出時(shí)催烘,會(huì)清空tmp數(shù)據(jù), Documents/Library目錄數(shù)據(jù)則會(huì)本地化存儲(chǔ)持久化府适,不會(huì)清空)
SystemData 存儲(chǔ)系統(tǒng)數(shù)據(jù)
strong copy關(guān)鍵字的區(qū)別
strong/retain copy 實(shí)際上是淺復(fù)制和深復(fù)制的區(qū)別(strong ARC下面的關(guān)鍵字 retain是MRC)
strong 強(qiáng)引用一個(gè)對(duì)象扬舒,需要持有它所指向?qū)ο蟮乃袡?quán)
strong/retain 屬于淺復(fù)制雏赦,引用一次聋涨,增加一次引用計(jì)數(shù)retainCount 可變的NSMutableString NSMutableArray NSMutableDictionary 一般用strong修飾(人的影子)
copy 屬于深復(fù)制:不可變的NSString NSArray NSDictionary的父類引用(指針)指向子類對(duì)象税肪,一般用copy關(guān)鍵字修飾(克隆人)
解決tableView的卡頓問(wèn)題
問(wèn)題:TableView卡頓一般是由于加載大量的網(wǎng)絡(luò)圖片資源時(shí)溉躲,引起的榜田。每加載一行,都需要去從網(wǎng)絡(luò)上讀取這張圖片锻梳,每一個(gè)cell的出現(xiàn)都需要網(wǎng)絡(luò)上請(qǐng)求的這么一個(gè)狀態(tài)箭券,所以會(huì)出現(xiàn)卡頓的問(wèn)題。
解決方法:網(wǎng)絡(luò)圖片的加載疑枯,做成異步請(qǐng)求即可辩块。第三方網(wǎng)絡(luò)圖片異步加載庫(kù)SDWebImage
問(wèn)題:tableView加載的數(shù)據(jù)很大,每一行cell的高度不統(tǒng)一荆永,高度需要通過(guò)臨時(shí)加載的數(shù)據(jù)來(lái)計(jì)算
解決方法:優(yōu)先計(jì)算出請(qǐng)求所有行的高度废亭,做成一個(gè)數(shù)組,Cell表格加載行高時(shí)具钥,通過(guò)數(shù)組來(lái)繪制每一行的行高豆村。
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 1.0f;
} //加載數(shù)據(jù)表格每一行數(shù)據(jù)之前,優(yōu)先調(diào)用的
利用Socket建立網(wǎng)絡(luò)連接的步驟
Socket是網(wǎng)絡(luò)通訊的基石
Socket的兩種協(xié)議
TCP 一對(duì)一氓拼,類似打電話
UDP 一對(duì)多你画,類似發(fā)短信
Http是建立在Socket TCP絡(luò)通訊協(xié)議
每一對(duì)套接字分為服務(wù)端和客戶端
服務(wù)器監(jiān)聽(tīng) 循環(huán)監(jiān)聽(tīng) 等待狀態(tài),無(wú)需指定
客戶端請(qǐng)求桃漾,指定連接的服務(wù)器(IP sort端口)
連接確認(rèn)(服務(wù)端確認(rèn) 客戶端確認(rèn) 服務(wù)端再次確認(rèn) 三次握手)
服務(wù)器開(kāi)啟一個(gè)新的線程坏匪,接收客戶端的請(qǐng)求,處理并返回服務(wù)端的數(shù)據(jù)
建立網(wǎng)絡(luò)連接 三次握手
斷開(kāi)網(wǎng)絡(luò)連接 四次揮手