2013-07-25 5 views
1

Есть ли причина для NSJSONSerialization использовать NSData вместо NSString для представления данных JSON?Почему NSJSONSerialization использует NSData вместо NSString?

NSString кажется более очевидным выбором для меня ...

+3

Большинство методов, которые извлекают данные из 'NSURLConnection', возвращают' NSData' (для того, чтобы быть агностиком в отношении вида данных, которые извлекаются), поэтому логично, что метод для преобразования этого в NSArray или NSDictionary будет принимать «NSData». – Rob

ответ

4

Я полагаю, что было бы более эффективно стимулировать разборе NSData вместо NSString. Например, если вы разбираете ответ с сервера, вы получите объект NSData, представляющий буфер необработанных байтов, возвращаемых с сервера (обратите внимание, что NSJSONSerialization также включает в себя метод для разбора NSInputStream). Разбор всего этого в NSString был бы пустой тратой, поскольку это был бы просто промежуточный объект, который будет выброшен. Вместо этого NSJSONSerialization, вероятно, непосредственно обрабатывает байты в объекте NSData и строит только NSStrings для соответствующих ключей и значений в результирующей структуре данных.

Смежные вопросы