2
我有一个问题,将文件Blob从Web服务转换为NSData对象。文件Blob可以是任何类型的文件。我可以从通过RestKit一个Web服务器请求一个文件,并得到如下回应:如何将文件Blob转换为NSData?
[{
"FileBlob": [
65,
108,
108,
111,
99,
46,
32,
83,
/* more integer values omitted */
],
"FileID": 1234567890,
"FileName": "name.txt"
}]
我将经由JSONKit NSDictionary *dict = [[response bodyAsString] objectFromJSONString];
工作正常响应到字典。但我不知道如何将FileBlob转换为NSData对象,以便我可以将它作为文件写入HDD。在像上面的例子中,我可以走线槽的数组转换一个txt,文件的情况下,所有整数值字符
NSMutableString *fileString = [NSMutableString string];
for (NSNumber *value in [[dict valueForKey:@"FileBlob"] objectAtIndex:0]) {
[fileString appendFormat:@"%c", (char)value.integerValue];
}
,然后一切都保存到磁盘
NSData *data = [fileString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *file = [[paths objectAtIndex:0] stringByAppendingPathComponent:filename];
[[NSFileManager defaultManager] createFileAtPath:file contents:data attributes:nil];
但是,如果该文件是其他的东西像PDF这不起作用。有什么我可以做的,将文件Blob转换为NSData对象或其他任何东西将blob作为文件写入光盘?
哇非常感谢你的帮助。你的建议完美。 – lahmar 2012-03-04 15:48:43