2016-11-20 3 views
0

Я использую NSMutableDictionary и я проверять, если он пуст (в частности, нулевой), используя это:Как установить NSMutableDictionary обнулить

if([webContent isKindOfClass:[NSNull class]]) 

Если это правда, я делаю вызов веб-службы и заполнить его значениями, которые я обрабатываю для отображения пользователю.

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

NSMutableDictionary * webContent = [[NSMutableDictionary alloc]init]; 

имеет больше накладных расходов, чем установить его в нулевое значение, но, пожалуйста, предлагайте вашу консультацию.

Благодаря

+0

'NSMutableDictionary * WebContent = [NSNull нуль];' Я предпочитаю, чтобы установить его на 'nil' вместо и проверить, если его нулем. –

+0

Спасибо. Согласны ли вы с моим оператором if, чтобы проверить, является ли оно нулевым? И вы хотите предложить это как ответ? – Jazzmine

+0

Его хорошая практика - проверить нуль, но прежде, чем использовать его (однако, ноль реагирует на все методы, поэтому он не просто сбой). –

ответ

2

яблочной документации:

Класс NSNull определяет одноплодный объект используется для представления нулевых значений в объектах коллекции (которые не допускают значений nil).

Для вас это не так. Вы должны использовать nil вместо NSNull. Тогда тестирование будет просто выглядеть

if (webContent) { 
    // do something 
} 

и сбросить как

webContent = nil; 
+0

Спасибо за объяснение Бориса. Кроме того, он компилируется без ошибок. – Jazzmine

1

NSMutableDictionary * webContent = nil; Вы можете установить null к значениям словаря, а не сама коллекции:

NSMutableDictionary *dict = [NSMutableDictionary dictionary]; 
[dict setObject:[NSNull null] forKey:@"myKey"]; 
+0

Вы протестировали это? Я получаю несовместимый тип указателя, назначающий «NSMutableDictionary» из NSNULL * NonNull. – Jazzmine