在我開發(fā)項(xiàng)目的過程中绪杏,后臺將我需要的地圖數(shù)據(jù)傳過來纽绍,我這邊是以json的形式接收,但是后臺傳過來的時(shí)候拌夏,只是將數(shù)據(jù)的byte數(shù)組直接扔給我僧著,我這邊解析出來障簿,發(fā)現(xiàn)是一個(gè)string類型,我這邊需要將這個(gè)數(shù)據(jù)封裝成NSData,并寫入到項(xiàng)目沙盒的Document文件夾下站故,后面再解析這個(gè)文件來把地圖加載出來杯拐。
為此世蔗,我試了很多種方法將收到的string轉(zhuǎn)為data,嘗試了各種格式的互轉(zhuǎn)污淋。這個(gè)二進(jìn)制流的處理還是沒有得到解決顶滩,后來參考安卓的實(shí)現(xiàn)方法寸爆,在網(wǎng)上找到了一個(gè)base64的編碼解碼文件,將其導(dǎo)入項(xiàng)目赁豆,再解碼仅醇,就得到了我想要的NSData魔种,這對于后臺直接給我們iOS扔byte數(shù)組有致命的解決辦法,對节预,致命的叶摄。百度上能找到相關(guān)的信息安拟,但很多我們可能不需要,我這里再寫個(gè)博客糠赦,讓需要的人少走彎路会傲。
這里有GTMBase64文件的下載方式(壓縮包)和一點(diǎn)介紹:?[代碼分享]iOS Base64編碼
NSString *myStr = @"SJSNDML+msdmmmd=snkamKSKSNDNMMASNSBDNKANMDSA+=DSA==DSAKMSA"; //這種類型
NSData *myData = [myStr dataUsingEncoding:NSUTF8StringEncoding];
myData = [GTMBase64 decodeData:myData];
這里myData就是我們需要的數(shù)據(jù)了,然后就能通過
NSFileManager *manager = [NSFileManager defaultManager];
[manager createFileAtPath:filePath contents:floorMapData attributes:nil];的方式將data寫入到想要的位置里面
網(wǎng)上有許多種方法淌山,我也試了很多很多哲戚,但有用的只有這個(gè)艾岂,GTMBase64,希望對大家有所幫助王浴,也希望大家有建議脆炎,意見隨便提氓辣,共同進(jìn)步。