[Я прочитал правило управления какао памяти, но все еще хочу быть уверены, и хотел бы знать, если это хорошая форма.]Какао - NSDictionary objectForKey - управление памятью уточнение
Моего класса имеет изменяемый словарь Ивар:
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. Что возвращает объектForKey? Является ли это указателем на объект, который хранится в словаре? Или указатель на КОПИЮ объекта? (Я предполагаю, что просто указатель на существующий объект возвращается.)
Q2. Что здесь произошло, управление памятью мудро? Я предполагаю, что «массив» указывает на объект, который все еще сохранил (по собственному объекту словаря) и что мне не нужно сохранять объект для работы с ним. Верный?
Спасибо.
Спасибо, сейчас намного яснее. – SirRatty