2011-09-07 83 views
1

我试图从REST服务下载Objective-C中的文件,但遇到一些问题。目前,该服务在JSON中返回一个字节[]。我能够通过使用json框架来获取数组。将NSArray的字节转换为NSData

NSURL *url = [NSURL URLWithString:@"http://192.168.10.215:8888/Service/RO/GetAllTheBytes/test.txt"]; 
NSString *str = [[NSString alloc] initWithContentsOfURL:url]; 
NSDictionary *jsonDic = [str JSONValue]; 
NSArray *fileContents = [jsonDic objectForKey:@"fileContents"]; 

现在我想用这个字节数组创建一个文件,但是我在创建文件时遇到了麻烦。我应该将NSArray转换为NSData,以及如何?

+0

为什么在'NSArray'中保存fileContents?我想'NSString'将会是更好的选择。和'NSString'可以转换为byte []当你需要这个 – Nekto

+0

可能的重复http://stackoverflow.com/questions/1286212/how-to-convert-nsarray-to-nsdata – 0x8badf00d

+3

JSON没有字节类型。你是否回来了可能是一串数字,一串十六进制数字,一个base64编码的字符串,还是其他的东西? – Tommy

回答

1

更改您的服务以返回Base64字符串。在那里有很多Objective-C Base64解码器,其中一些是体面的。 NSNumbers的

一个NSArray的是真的真的真的愚蠢的,具有约300%的最小空间开销(虽然不是那么糟糕JRA-11693)。