我有包含byte []条目的.Net Web服务响应以及其他字段。 该数据是一个PDF文件。 [NSJSONSerialization JSONObjectWithData]将字节[]转换为NSData后数据损坏
下面我使用以下代码的字节[]转换为NSData的:
我从与所接收的数据中提取的字典。 然后我将结果保存到磁盘(见最后一行)。
当打开生成的PDF文件,我得到以下错误:
“未能找到PDF标题:`%PDF”找不到”
NSArray *byteArray = [rootDictionary objectForKey:@"file"];
unsigned c = byteArray.count;
uint8_t *bytes = malloc(sizeof(*bytes) * c);
unsigned i;
for (i = 0; i < c; i++)
{
NSString *str = [byteArray objectAtIndex:i];
int byte = [str intValue];
bytes[i] = (uint8_t)byte;
}
NSData* data = [NSData dataWithBytes:(const void *)byteArray length:sizeof(unsigned char)*c];
//Save to disk using svc class.
NSString *localPath = [svc saveReport:data ToFile:[rootDictionary objectForKey:@"name"]];
我也试过在我的应用程序,其工作的字节[]转换到Base64的NSString(在服务端),然后返回NSData的(**大部分),但有人告诉我,这是马虎代码。
**当在同一时间异步拉取多个PDF时,以base64字符串形式收到的这些报告中的一部分也被破坏。
PS。请让我知道我是否也必须提供我的svc课程的代码,但我认为问题不在那里。
编辑: 我创建了取一个字节[]作为输入,然后修改了我的iOS应用的ByteArray变量送回服务,在那里得到保存到文件中的一个新的Web服务方法。 生成的PDF文件是Adobe可读的有效文件。意味着转移期间不存在腐败现象。
谢谢!
作为一个方面说明,我确认服务器端的文件与生成的NSData大小完全一致。此外,服务器上的文件是在Adobe中成功打开的有效PDF。 – 2013-03-21 13:08:40