Ios 将字节[]转换为NSData后数据损坏

Ios 将字节[]转换为NSData后数据损坏,ios,json,pdf,bytearray,nsdata,Ios,Json,Pdf,Bytearray,Nsdata,我有一个.Net web服务响应,其中包含一个byte[]条目和其他字段。 数据是一个PDF文件 我使用以下方法从接收到的数据中提取词典: [NSJSONSerialization JSONObjectWithData] 此后,我使用以下代码将字节[]转换为NSData。 然后将结果保存到磁盘(参见最后一行) 打开生成的PDF文件时,出现以下错误: “未能找到PDF标题:`%PDF'未找到。” NSArray*byteArray=[rootDictionary objectForKey:@“fi

我有一个.Net web服务响应,其中包含一个byte[]条目和其他字段。 数据是一个PDF文件

我使用以下方法从接收到的数据中提取词典: [NSJSONSerialization JSONObjectWithData]

此后,我使用以下代码将字节[]转换为NSData。 然后将结果保存到磁盘(参见最后一行)

打开生成的PDF文件时,出现以下错误:

“未能找到PDF标题:`%PDF'未找到。”

NSArray*byteArray=[rootDictionary objectForKey:@“file”];
无符号c=byteArray.count;
uint8_t*字节=malloc(sizeof(*字节)*c);
未签名的i;
对于(i=0;i
我还尝试将byte[]转换为base64 NSString(在服务端),然后在我的应用程序中返回到NSData,这在很大程度上起到了作用(**但我被告知这是一个草率的代码

**当同时异步提取多个PDF时,其中一些作为base64字符串接收的报告也已损坏

请让我知道,如果我必须提供的代码从我的svc类以及,但我认为问题不存在

编辑: 我创建了一个新的web服务方法,该方法以字节[]作为输入,然后修改我的iOS应用程序,将byteArray变量发送回服务,并将其保存到文件中。 生成的PDF文件是Adobe可读的有效文件。这意味着在转移过程中没有腐败


谢谢大家!

O.k,在仔细梳理了我的代码后,终于解决了这个问题(灵感来源于snadeep.gvn)

我犯了一个愚蠢的错误,我忽略了100多次

这行代码:

NSData* data = [NSData dataWithBytes:(const void *)byteArray length:sizeof(unsigned char)*c];
应改为:

NSData* data = [NSData dataWithBytes:(const void *)bytes length:sizeof(unsigned char)*c];

好景不长,现在我终于可以睡一觉了:-)

顺便说一句,我确认服务器端的文件与生成的NSData大小完全相同。此外,服务器上的文件是在Adobe中成功打开的有效PDF。
NSData* data = [NSData dataWithBytes:(const void *)bytes length:sizeof(unsigned char)*c];