NSMutableData для NSDictionary, возвращающий ноль
Я пишу программу, которая использует Instagram API, и я сталкиваюсь с некоторыми проблемами с NSMutableData and NSDictionary.
Поскольку мне нужно сделать несколько вызовов API, я решил создать NSMutableData object
, добавьте меньшие объекты NSData к нему и затем превратите все это в NSDictionary.
Однако после того, как я сделаю второй звонок NSMutableData appendData NSData,
когда я перехожу NSMutableData
в NSDictionary
, словарь возвращает ноль.
Вот немного моего кода.
NSMutableData *userData = [[NSMutableData alloc]init]
NSData *feed = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://api.instagram.com/v1/users/17636367/media/recent?access_token=%@",accessToken]]];
[userData appendData:feed];
NSData *moarData = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://api.instagram.com/v1/users/17636367/media/recent?access_token=%@&max_id=%@",accessToken, maxID]]];
[userData appendData:moarData];
NSDictionary *dictTwo = [NSJSONSerialization JSONObjectWithData:userData options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@",dictTwo);
dictTwo возвращает ноль. Однако, когда я делаю только один вызов appendData, словарь не пуст.
Благодарю.
2 ответа
Когда вы добавляете два отдельных ответа JSON, они не образуют JSON.
Вы можете проверить окончательный результат, чтобы увидеть, является ли это JSON или нет по следующей ссылке:
Вам нужно проанализировать каждый ответ на запрос отдельно, а затем применить манипулирование этими данными: (например, NSMutableDictionary, NSMutableArray и т. Д.).
Первый вызов вернет массив или словарь. Предполагая, что это словарь, вы получите что-то вроде:
{"some":"data"}
Это можно правильно проанализировать. Когда вы делаете два звонка, вы получаете:
{"some":"data"}{"other":"data"}
Это не допустимый JSON. Вам нужно разобрать каждый элемент отдельно.