NSMutableDictionary setObject: forKey не работал, когда значение равно NSMutableArray - PullRequest
0 голосов
/ 07 января 2011

dict is NSMutableDictionary;массив - это NSMutableArray, и он не равен nil;

Код:

[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 ]

0 голосов
/ 07 января 2011

Код кажется верным. Скорее всего, ваш array равен nil. При использовании arrayWithArray вставленный объект будет массивом, даже если само его значение установлено на nil.

0 голосов
/ 07 января 2011

Вы знаете, что вы используете различные заглавные буквы "ключа", верно? @"Key" - это не то же самое, что @"key".

0 голосов
/ 07 января 2011

Я думаю, что вы не инициализировали массив в 1-й инструкции. проверить, выделена ли у него память или нет?

...