Есть ли причина для NSJSONSerialization
использовать NSData
вместо NSString
для представления данных JSON?Почему NSJSONSerialization использует NSData вместо NSString?
NSString
кажется более очевидным выбором для меня ...
Есть ли причина для NSJSONSerialization
использовать NSData
вместо NSString
для представления данных JSON?Почему NSJSONSerialization использует NSData вместо NSString?
NSString
кажется более очевидным выбором для меня ...
Я полагаю, что было бы более эффективно стимулировать разборе NSData
вместо NSString
. Например, если вы разбираете ответ с сервера, вы получите объект NSData
, представляющий буфер необработанных байтов, возвращаемых с сервера (обратите внимание, что NSJSONSerialization
также включает в себя метод для разбора NSInputStream
). Разбор всего этого в NSString
был бы пустой тратой, поскольку это был бы просто промежуточный объект, который будет выброшен. Вместо этого NSJSONSerialization
, вероятно, непосредственно обрабатывает байты в объекте NSData
и строит только NSStrings
для соответствующих ключей и значений в результирующей структуре данных.
Большинство методов, которые извлекают данные из 'NSURLConnection', возвращают' NSData' (для того, чтобы быть агностиком в отношении вида данных, которые извлекаются), поэтому логично, что метод для преобразования этого в NSArray или NSDictionary будет принимать «NSData». – Rob