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,

Другие вопросы по тегам