и вы не должны проверять это на NSNull, NULL самостоятельно.

т, я использую TouchJSON для десериализации некоторых JSON. Я использовал его в прошлом, и в тех случаях я имел дело с появлением NSNull вручную. Я бы подумал, что автору также пришлось иметь дело с этим, так что повторение этого было бы просто накладными расходами. Затем я нашел это в документации:

Избегание значений NSNull в выводе.

NSData *theJSONData = /* some JSON data */
CJSONDeserializer *theDeserializer = [CJSONDeserializer deserializer];
theDeserializer.nullObject = NULL;
NSError *theError = nil;
id theObject = [theDeserializer deserialize:theJSONData error:&theError];}

Насколько я понимаю, пользователь класса может передать нулевой указатель в стиле C десериализатору, и когда он встретит NSNull, он вставит переданные ему значения (NULL). Поэтому позже, когда я буду использовать значения, я не получу NSNull, но NULL.

Это кажется странным, возвращаемое значение представляет собой NSDictionary, который может содержать только объекты, не должно ли значение по умолчанию «nil» вместо этого?

Если это NULL, я могу проверить значения как это?

if([jsonDataDict objectForKey:someKey] == NULL)

Казалось бы, более логично сделать это:

if(![jsonDataDict objectForKey:someKey])

Не говоря уже о всех случаях, когда допускается передача nil, но передача NULL вызывает сбой.

Или я могу просто передать nil десериализатору?

Многое из этого связано с тем, что я все еще борюсь с nil, NULL, [NSNULL null], возможно, я не вижу потенциальных предостережений при использовании nil.

Ответы на вопрос(3)

Ваш ответ на вопрос