NSJSONSerialization не работает должным образом для API переполнения стека - PullRequest
0 голосов
/ 20 октября 2011

Я пытаюсь использовать NSJSONSerialization для сериализации данных, возвращаемых из API переполнения стека, но он не работает должным образом: (

Я использую код, указанный ниже:

NSURL *apiURL = [NSURL URLWithString:@"http://api.stackoverflow.com/1.1/questions?tagged=objective-c&pagesize=30"];

NSError *error = nil;

// First option - failed
NSInputStream *inputStream = [NSInputStream inputStreamWithURL:apiURL]; // returning nil
id jsonFound1 = [NSJSONSerialization JSONObjectWithStream:inputStream options:NSJSONReadingMutableContainers error:&error];

// Second option - failed
NSData *jsonData = [NSData dataWithContentsOfURL:apiURL]; // returning correct value, verified after converting it to NSString

id jsonFound2 = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];  // returning nil

Я пытаюсь использовать приведенный выше код в Xcode 4.2 для iOS5 и получаю (null) для inputStream и для jsonFound2 .

Ранее я делал это через SBJSON, и он работал правильно.

Может кто-нибудь подсказать мне, если я что-то делаю неправильно или что-то не так?

Ответы [ 2 ]

3 голосов
/ 04 января 2013

Я думаю, что после назначения inputStream.

может быть пропущен шаг.
[inputStream open];

Я не пробовал это с удаленными URL-адресами, но видел примеры, использующие этот подход.

0 голосов
/ 20 октября 2011

Первый параметр не работает, поскольку он поддерживает только URL-адрес файла (спасибо Дэвиду за указание).

Второй параметр отлично работает для удаленных URL-адресов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...