Я пытаюсь выполнить поиск в twitter, используя NSJSONSerialization для анализа результатов запроса. Первоначально я использовал учебное пособие по доступу к данным Twitter с использованием SLRequest, но я обнаружил, что для этого мне нужны результаты для обновления свойства, чтобы сохранить их. Я хочу, чтобы выборка была методом класса, поэтому я избегаю использования свойств. Проблема, с которой я сталкиваюсь, немного странная, и я не уверен, почему это произойдет. В принципе, я могу получить выборку с помощью [NSJSONSerialization JSONObjectWithData: ...] надежно - за исключением одной пары ключ: значение в словаре, результаты. Значение для ключевых «результатов» возвращается как() и является типом __NSArrayM. Я вижу, что URL-адрес, который я отправляю для получения данных, является правильным и что остальная часть информации в анализируемом словаре верна. Я не уверен, почему это произойдет.NSJSONSerialization for Twitter API Запросы на поиск
Вот запрос пример GET: https://search.twitter.com/search.json?q=tech%20filter%3Alinks%20lang%3Aen&src=typd&rpp=1&include_entities=true
Если вы зайдете на эту страницу, вы можете увидеть, что ключ «результаты» имеет значение, связанное с ним, и он должен быть массивом. В моей разобранной версии, хотя, у меня есть пустой массив:
fetchResults = {
"completed_in" = "0.045";
"max_id" = 309208532929101825;
"max_id_str" = 309208532929101825;
page = 1;
query = "tech%2520filter%253Alinks%2520lang%253Aen";
"refresh_url" = "?since_id=309208532929101825&q=tech%2520filter%253Alinks%2520lang%253Aen&include_entities=1";
results = (
);
"results_per_page" = 1;
"since_id" = 0;
"since_id_str" = 0;
}
есть причина, почему это может происходить? Я поместил свой код для разбора JSON ниже.
+(NSArray *)fetchTweetsForSearchContent:(NSString *)searchContent
{
NSString *requestURL = [[TwitterFetcherrequestURLWithSearchContent:searchContent] absoluteString];
NSLog(@"URL: %@",requestURL);
NSString *query = [requestURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData *jsonData = [[NSStringstringWithContentsOfURL:[NSURLURLWithString:query] encoding:NSUTF8StringEncodingerror:nil] dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
NSDictionary *fetchResults = jsonData ? [NSJSONSerializationJSONObjectWithData:jsonData options:NSJSONReadingMutableContainers|NSJSONReadingMutableLeaveserror:&error] : nil;
if (error) NSLog(@"[%@ %@] JSON error: %@", NSStringFromClass([selfclass]), NSStringFromSelector(_cmd), error.localizedDescription);
NSLog(@"%@", fetchResults);
return [fetchResults objectForKey:@"results"];
}