关于二进制流与NSData,NSString编码问题

在我开发项目的过程中,后台将我需要的地图数据传过来,我这边是以json的形式接收,但是后台传过来的时候,只是将数据的byte数组直接扔给我,我这边解析出来,发现是一个string类型,我这边需要将这个数据封装成NSData,并写入到项目沙盒的Document文件夹下,后面再解析这个文件来把地图加载出来。

为此,我试了很多种方法将收到的string转为data,尝试了各种格式的互转。这个二进制流的处理还是没有得到解决,后来参考安卓的实现方法,在网上找到了一个base64的编码解码文件,将其导入项目,再解码,就得到了我想要的NSData,这对于后台直接给我们iOS扔byte数组有致命的解决办法,对,致命的。百度上能找到相关的信息,但很多我们可能不需要,我这里再写个博客,让需要的人少走弯路。

这里有GTMBase64文件的下载方式(压缩包)和一点介绍: [代码分享]iOS Base64编码

NSString *myStr = @"SJSNDML+msdmmmd=snkamKSKSNDNMMASNSBDNKANMDSA+=DSA==DSAKMSA"; //这种类型

NSData *myData = [myStr dataUsingEncoding:NSUTF8StringEncoding];

myData = [GTMBase64 decodeData:myData];

这里myData就是我们需要的数据了,然后就能通过

NSFileManager *manager = [NSFileManager defaultManager];

[manager createFileAtPath:filePath contents:floorMapData attributes:nil];的方式将data写入到想要的位置里面

网上有许多种方法,我也试了很多很多,但有用的只有这个,GTMBase64,希望对大家有所帮助,也希望大家有建议,意见随便提,共同进步。

你可能感兴趣的:(关于二进制流与NSData,NSString编码问题)