Ios 将字节[]转换为NSData后数据损坏
我有一个.Net web服务响应,其中包含一个byte[]条目和其他字段。 数据是一个PDF文件 我使用以下方法从接收到的数据中提取词典: [NSJSONSerialization JSONObjectWithData] 此后,我使用以下代码将字节[]转换为NSData。 然后将结果保存到磁盘(参见最后一行) 打开生成的PDF文件时,出现以下错误: “未能找到PDF标题:`%PDF'未找到。”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
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];