【发布时间】:2015-09-21 16:56:24
【问题描述】:
我有这个来自 web 服务的 byte[] 数据,看起来像这样(这只是它的一小部分):
JVBERi0xLjQgU2hhcnAgU2Nhbm5lZCBJbWFnZVBERgolU2hhcnAgTm9uLUVuY3J5cHRpb24KMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDEgMCBSCi9SZXNvdXJjZXMgNCAwIFIKL0NvbnRlbnRzIDUgMCBSCi9NZWRpYUJveCBbMCAwIDYxMyA3OTBdCj4+CmVuZG9iago0IDAgb2JqCjw8Ci9Qcm9jU2V0IFsvUERGIC9JbWFnZUJdCi9YT2JqZWN0IDw8IC9JbWcxIDYgMCBSID4+Cj4+CmVuZG9iago1IDAgb2JqCjw8Ci9MZW5ndGggMjcKPj4Kc3RyZWFtCjYxMyAwIDAgNzkwIDAgMCBjbQovSW1nMSBEbwplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0ltYWdlCi9OYW1lIC9JbWcxCi9GaWx0ZXIgL0NDSVRURmF4RGVjb2RlCi9EZWNvZGVQYXJtcyA8PCAgL0sgLTEgL0NvbHVtbnMgMTcwNCAvUm93cyAyMTk2ID4+Ci9XaWR0aCAxNzA0Ci9IZWlnaHQgMjE5NgovQml0c1BlckNvbXBvbmVudCAxCi9Db2xvclNwYWNlIC9EZXZpY2VHcmF5Ci9MZW5ndGggNyAwIFIKPj4Kc3RyZWFtCvywYWH//////////////////////////X3////////////r5bIVv/Zbqq/D9fH//////////X//ymQ1vH/////X/f///69/9f////+/+vfr//+//9f/79e//9ZZmL/XG//9f/7////X/17////+vde///a/+V+RGlpyuOgQITiPMjojo8gQJTTI
我想要做的是把这个 byte[] 数据放到一个 NSData 变量中,这样我就可以保存这个 PDF 文件并在我的应用程序上显示。
这是我尝试过的:
NSArray *byteArray = [dataSource.areaData GetPDFFileData:[NSString stringWithFormat:@"%@",@""]];
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 *)bytes length:sizeof(unsigned char)*c];
但我收到此错误
-[__NSCFDictionary intValue]: unrecognized selector sent to instance 0x17eb28e0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary intValue]: unrecognized selector sent to instance 0x17eb28e0'
在这条线上
int byte = [str intValue];
我该如何解决这个问题?我的 byte[] 数据或我转换它的方式有问题吗?
下面是 byteArray 中的图片
这是我从 web 服务获取字节 [] 的调用
-(NSArray *)GetPDFFileData:(NSString *)y
{
NSString *FileBrowserRequestString = [NSString stringWithFormat:@"%@?y=%@",kIP,y];
NSURL *JSONURL = [NSURL URLWithString:FileBrowserRequestString];
NSURLResponse* response = nil;
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:JSONURL];
NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
if(data == nil)
return nil;
NSError *myError;
NSArray *tableArray = [[NSArray alloc]initWithArray:[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&myError]];
return tableArray;
}
【问题讨论】:
-
该错误似乎表明您的
byteArray实际上包含NSDictionary,而不是NSNumber或NSString- 至少在一个索引中。
标签: objective-c byte