[Я прочитал правила управления памятью Какао, но все еще хочу быть уверенным, и хотел бы знать, если это хорошая форма.]
В моем классе есть изменяемый словарь ivar:
NSMutableDictionary *m_Dict;
...
m_Dict = [NSMutableDictionary dictionaryWithCapacity:10];
[m_Dict retain];
В какой-то момент я добавлю изменяемый массив в словарь:
NSMutableArray *array = [NSMutableArray arrayWithCapacity:100];
[m_Dict setObject:array forKey: @"myArray"];
На данный момент я считаю, что объект массива был сохранен словарем,Поэтому я не сохраняю объект до добавления его в словарь.Это правильно?
Позже я получу доступ к массиву для целей чтения:
NSMutableArray *array = [m_Dict objectForKey: @"myArray"];
Q1. Что возвращается objectForKey?Это указатель на объект, содержащийся в словаре?Или указатель на КОПИЮ объекта?(Я предполагаю, что просто указатель на существующий объект возвращается.)
Q2 .Что здесь произошло, мудрое управление памятью?Я предполагаю, что «массив» указывает на объект, который все еще остается (принадлежащим объекту словаря), и что мне не нужно сохранять объект для работы с ним.Правильно?
Спасибо.