У меня есть этот байт [] данные из веб-сервиса, который выглядит следующим образом (это лишь малая Porton его):Objective-C Преобразовать байт [], чтобы NSData
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
То, что я пытаюсь сделать помещает данные байта [] в переменную 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];
Как это исправить? что-то не так с моими байтами [] данными или тем, как я его конвертирую?
Ниже приводится изображение того, что находится в ByteArray,
Вот мой вызов, чтобы получить байт [] из WebService
-(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' - по крайней мере, при одном индексе. – rmaddy