NSMutableDictionary setObject:forKey не работал, когда значение равно NSMutableArray
dict - NSMutableDictionary; массив является NSMutableArray и НЕ является нолем;
Код:
[dict setObject:array forKey:@"key"];
Нет ошибок или предупреждений, но dict равен нулю, ничего не установлено или не добавлено.
Когда я использую код ниже, это работает:
[dict setObject:[NSArray arrayWithArray:array] forKey:@"Key"];
Кто-нибудь может сказать мне, почему?
Обновление: оба dict
а также array
являются локальными переменными и были инициализированы. dict
ноль
NSLog(@"%@", array)
напечатал значение массива:
({"Title":"firstTitle","Date":"20110101"},{"Title":"secondTitle","Date":"20110102"})
ОБНОВИТЬ:
Я сделал ошибку. array
сначала не является нулевым, но я опустошил его в следующей операции.
Спасибо за @Bavarious.
3 ответа
Вы знаете, что вы используете различные заглавные буквы "ключ", верно? @"Key"
это не то же самое, что @"key"
,
Я думаю, что вы не инициализировали массив в 1-м утверждении. проверить, выделена ли у него память или нет?
Код кажется правильным. Скорее всего, ваш array
является nil
, Когда используешь arrayWithArray
вставленный объект будет массивом, даже если само его значение установлено в nil
,