Данные не могут быть прочитаны, потому что они не в правильном формате
Хорошо, теперь я начинаю с разработки для iOS и в настоящее время играю с NSData, используя Obj-C. Недавно я использую метод URLSession: dataTask: didReceiveData для получения NSData с помощьюHTTP POST запрос, Сервер будет отвечать на объект JSON, содержащий массив JSON.
Что интересно, когда данные ответа слишком велики, часть NSLog распечатает: «Данные не могут быть прочитаны, потому что они не в правильном формате», Ниже приведена функция:
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data {
NSError *error;
// get data from NSData into NSDict
NSDictionary *searchData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
NSArray *test = [NSKeyedUnarchiver unarchiveObjectWithData:data];
NSMutableDictionary *mdict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
NSLog(@"what: %@", mdict);
NSLog(@"received data length: %@", [NSByteCountFormatter stringFromByteCount:data.length countStyle:NSByteCountFormatterCountStyleFile]);
if (error) {
NSLog(@"json error: %@", [error localizedDescription]);
}
}
Просто интересно, если кто-нибудь знает потенциальную причину, вызывающую эту проблему?
[Обновить]
Что ж, альтернативой для решения этой проблемы может быть использование NSString для хранения данных. Но пришлось бы разобрать это сам. Я бы предпочел использовать NSDictionary, хотя.